Lines Matching refs:INF_3C90X
249 INF_3C90X;
281 if (INF_3C90X.CurrentWindow == window) return 0;
285 INF_3C90X.CurrentWindow = window;
299 a3c90x_internal_SetWindow(INF_3C90X.IOAddr, winEepromBios0);
360 if (INF_3C90X.isBrev)
401 a3c90x_internal_SetWindow(INF_3C90X.IOAddr, winTxRxOptions3);
402 cfg = inl(INF_3C90X.IOAddr + regInternalConfig_3_l);
407 a3c90x_internal_IssueCommand(INF_3C90X.IOAddr, cmdGlobalReset, 0);
410 while (inw(INF_3C90X.IOAddr + regCommandIntStatus_w) & INT_CMDINPROGRESS);
415 a3c90x_internal_SetWindow(INF_3C90X.IOAddr, winAddressing2);
416 outw(0, INF_3C90X.IOAddr + regStationMask_2_3w+0);
417 outw(0, INF_3C90X.IOAddr + regStationMask_2_3w+2);
418 outw(0, INF_3C90X.IOAddr + regStationMask_2_3w+4);
422 a3c90x_internal_SetWindow(INF_3C90X.IOAddr, winTxRxOptions3);
423 outl(cfg, INF_3C90X.IOAddr + regInternalConfig_3_l);
428 a3c90x_internal_IssueCommand(INF_3C90X.IOAddr, cmdEnableDcConverter, 0);
433 a3c90x_internal_IssueCommand(INF_3C90X.IOAddr, cmdTxReset, 0);
434 while (inw(INF_3C90X.IOAddr + regCommandIntStatus_w) & INT_CMDINPROGRESS)
436 if (! INF_3C90X.isBrev)
437 outb(0x01, INF_3C90X.IOAddr + regTxFreeThresh_b);
438 a3c90x_internal_IssueCommand(INF_3C90X.IOAddr, cmdTxEnable, 0);
444 if (INF_3C90X.isBrev)
445 a3c90x_internal_IssueCommand(INF_3C90X.IOAddr, cmdRxReset, 0x04);
447 a3c90x_internal_IssueCommand(INF_3C90X.IOAddr, cmdRxReset, 0x00);
448 while (inw(INF_3C90X.IOAddr + regCommandIntStatus_w) & INT_CMDINPROGRESS);
450 a3c90x_internal_IssueCommand(INF_3C90X.IOAddr, cmdRxEnable, 0);
452 a3c90x_internal_IssueCommand(INF_3C90X.IOAddr,
455 a3c90x_internal_IssueCommand(INF_3C90X.IOAddr,
458 a3c90x_internal_IssueCommand(INF_3C90X.IOAddr,
491 a3c90x_internal_IssueCommand(INF_3C90X.IOAddr, cmdStallCtl, 2);
494 inw(INF_3C90X.IOAddr + regCommandIntStatus_w);
495 inw(INF_3C90X.IOAddr + regCommandIntStatus_w);
497 while (inw(INF_3C90X.IOAddr+regCommandIntStatus_w) &
508 memcpy(hdr.src_addr, INF_3C90X.HWAddr, ETH_ALEN);
511 INF_3C90X.TransmitDPD.DnNextPtr = 0;
513 INF_3C90X.TransmitDPD.FrameStartHeader = (s + sizeof(hdr)) | 0x8000;
514 INF_3C90X.TransmitDPD.HdrAddr = virt_to_bus(&hdr);
515 INF_3C90X.TransmitDPD.HdrLength = sizeof(hdr);
516 INF_3C90X.TransmitDPD.DataAddr = virt_to_bus(p);
517 INF_3C90X.TransmitDPD.DataLength = s + (1<<31);
520 outl(virt_to_bus(&(INF_3C90X.TransmitDPD)),
521 INF_3C90X.IOAddr + regDnListPtr_l);
524 a3c90x_internal_IssueCommand(INF_3C90X.IOAddr, cmdStallCtl, 3);
525 while(inl(INF_3C90X.IOAddr + regDnListPtr_l) != 0)
530 while (!(inw(INF_3C90X.IOAddr + regCommandIntStatus_w)&0x0004) &&
534 if (!(inw(INF_3C90X.IOAddr + regCommandIntStatus_w)&0x0004))
540 status = inb(INF_3C90X.IOAddr + regTxStatus_b);
543 outb(0x00, INF_3C90X.IOAddr + regTxStatus_b);
560 outb(0x00, INF_3C90X.IOAddr + regTxStatus_b);
562 a3c90x_internal_IssueCommand(INF_3C90X.IOAddr, cmdTxEnable, 0);
568 a3c90x_internal_IssueCommand(INF_3C90X.IOAddr, cmdTxEnable, 0);
606 if (!(inw(INF_3C90X.IOAddr + regCommandIntStatus_w)&0x0010))
618 INF_3C90X.ReceiveUPD.UpNextPtr = 0;
619 INF_3C90X.ReceiveUPD.UpPktStatus = 0;
620 INF_3C90X.ReceiveUPD.DataAddr = virt_to_bus(nic->packet);
621 INF_3C90X.ReceiveUPD.DataLength = 1536 + (1<<31);
624 outl(virt_to_bus(&(INF_3C90X.ReceiveUPD)),
625 INF_3C90X.IOAddr + regUpListPtr_l);
629 while((INF_3C90X.ReceiveUPD.UpPktStatus & ((1<<14) | (1<<15))) == 0)
633 if (INF_3C90X.ReceiveUPD.UpPktStatus & (1<<14))
635 errcode = INF_3C90X.ReceiveUPD.UpPktStatus;
652 nic->packetlen = (INF_3C90X.ReceiveUPD.UpPktStatus & 0x1FFF);
671 outw(cmdRxDisable, INF_3C90X.IOAddr + regCommandIntStatus_w);
672 outw(cmdTxDisable, INF_3C90X.IOAddr + regCommandIntStatus_w);
710 INF_3C90X.IOAddr = pci->ioaddr & ~3;
711 INF_3C90X.CurrentWindow = 255;
712 switch (a3c90x_internal_ReadEeprom(INF_3C90X.IOAddr, 0x03))
718 INF_3C90X.isBrev = 0;
729 INF_3C90X.isBrev = 1;
734 if (INF_3C90X.isBrev)
738 eeprom[i] = a3c90x_internal_ReadEeprom(INF_3C90X.IOAddr, i);
744 a3c90x_internal_WriteEeprom(INF_3C90X.IOAddr, 0x13, 0x0160);
751 a3c90x_internal_WriteEeprom(INF_3C90X.IOAddr, 0x16, 0);
758 a3c90x_internal_WriteEeprom(INF_3C90X.IOAddr, 0x16,
767 eeprom[i] = a3c90x_internal_ReadEeprom(INF_3C90X.IOAddr, i);
777 if (INF_3C90X.isBrev)
787 INF_3C90X.HWAddr[0] = eeprom[HWADDR_OFFSET + 0]>>8;
788 INF_3C90X.HWAddr[1] = eeprom[HWADDR_OFFSET + 0]&0xFF;
789 INF_3C90X.HWAddr[2] = eeprom[HWADDR_OFFSET + 1]>>8;
790 INF_3C90X.HWAddr[3] = eeprom[HWADDR_OFFSET + 1]&0xFF;
791 INF_3C90X.HWAddr[4] = eeprom[HWADDR_OFFSET + 2]>>8;
792 INF_3C90X.HWAddr[5] = eeprom[HWADDR_OFFSET + 2]&0xFF;
793 printf("MAC Address = %!\n", INF_3C90X.HWAddr);
796 a3c90x_internal_SetWindow(INF_3C90X.IOAddr, winDiagnostics4);
797 mstat = inw(INF_3C90X.IOAddr + regMediaStatus_4_w);
804 a3c90x_internal_SetWindow(INF_3C90X.IOAddr, winAddressing2);
805 outw(htons(eeprom[HWADDR_OFFSET + 0]), INF_3C90X.IOAddr + regStationAddress_2_3w);
806 outw(htons(eeprom[HWADDR_OFFSET + 1]), INF_3C90X.IOAddr + regStationAddress_2_3w+2);
807 outw(htons(eeprom[HWADDR_OFFSET + 2]), INF_3C90X.IOAddr + regStationAddress_2_3w+4);
808 outw(0, INF_3C90X.IOAddr + regStationMask_2_3w+0);
809 outw(0, INF_3C90X.IOAddr + regStationMask_2_3w+2);
810 outw(0, INF_3C90X.IOAddr + regStationMask_2_3w+4);
822 a3c90x_internal_SetWindow(INF_3C90X.IOAddr, winTxRxOptions3);
823 mopt = inw(INF_3C90X.IOAddr + regResetMediaOptions_3_w);
826 if (! INF_3C90X.isBrev)
879 if (INF_3C90X.isBrev)
897 if (INF_3C90X.isBrev)
907 a3c90x_internal_IssueCommand(INF_3C90X.IOAddr, cmdEnableDcConverter, 0);
911 a3c90x_internal_SetWindow(INF_3C90X.IOAddr, winTxRxOptions3);
912 cfg = inl(INF_3C90X.IOAddr + regInternalConfig_3_l);
915 outl(cfg, INF_3C90X.IOAddr + regInternalConfig_3_l);
918 a3c90x_internal_IssueCommand(INF_3C90X.IOAddr, cmdTxReset, 0x00);
919 while (inw(INF_3C90X.IOAddr + regCommandIntStatus_w) & INT_CMDINPROGRESS)
922 if (!INF_3C90X.isBrev)
923 outb(0x01, INF_3C90X.IOAddr + regTxFreeThresh_b);
925 a3c90x_internal_IssueCommand(INF_3C90X.IOAddr, cmdTxEnable, 0);
931 if (INF_3C90X.isBrev)
932 a3c90x_internal_IssueCommand(INF_3C90X.IOAddr, cmdRxReset, 0x04);
934 a3c90x_internal_IssueCommand(INF_3C90X.IOAddr, cmdRxReset, 0x00);
935 while (inw(INF_3C90X.IOAddr + regCommandIntStatus_w) & INT_CMDINPROGRESS)
939 a3c90x_internal_IssueCommand(INF_3C90X.IOAddr, cmdSetRxFilter, 0x01 + 0x02 + 0x04);
940 a3c90x_internal_IssueCommand(INF_3C90X.IOAddr, cmdRxEnable, 0);
946 a3c90x_internal_IssueCommand(INF_3C90X.IOAddr, cmdSetInterruptEnable, 0);
947 a3c90x_internal_IssueCommand(INF_3C90X.IOAddr,
949 a3c90x_internal_IssueCommand(INF_3C90X.IOAddr,