• Home
  • Raw
  • Download

Lines Matching refs:ioaddr

175 #define EL3WINDOW(win_num) outw(SelectWindow + (win_num), ioaddr + EL3_CMD)
367 static int corkscrew_setup(struct net_device *dev, int ioaddr,
446 static int check_device(unsigned ioaddr) in check_device() argument
450 if (!request_region(ioaddr, CORKSCREW_TOTAL_SIZE, "3c515")) in check_device()
453 if ((inw(ioaddr + 0x2002) & 0x1f0) != (ioaddr & 0x1f0)) { in check_device()
454 release_region(ioaddr, CORKSCREW_TOTAL_SIZE); in check_device()
458 outw(EEPROM_Read + 7, ioaddr + Wn0EepromCmd); in check_device()
462 if ((inw(ioaddr + Wn0EepromCmd) & 0x0200) == 0) in check_device()
465 if (inw(ioaddr + Wn0EepromData) != 0x6d50) { in check_device()
466 release_region(ioaddr, CORKSCREW_TOTAL_SIZE); in check_device()
488 static int ioaddr; in corkscrew_scan() local
526 ioaddr = pnp_port_start(idev, 0); in corkscrew_scan()
528 if (!check_device(ioaddr)) { in corkscrew_scan()
534 (char*) corkscrew_isapnp_adapters[i].driver_data, ioaddr, irq); in corkscrew_scan()
536 inl(ioaddr + 0x2002), inw(ioaddr + 0x2000)); in corkscrew_scan()
540 err = corkscrew_setup(dev, ioaddr, idev, cards_found++); in corkscrew_scan()
550 for (ioaddr = 0x100; ioaddr < 0x400; ioaddr += 0x20) { in corkscrew_scan()
551 if (!check_device(ioaddr)) in corkscrew_scan()
555 inl(ioaddr + 0x2002), inw(ioaddr + 0x2000)); in corkscrew_scan()
556 err = corkscrew_setup(dev, ioaddr, NULL, cards_found++); in corkscrew_scan()
579 static int corkscrew_setup(struct net_device *dev, int ioaddr, in corkscrew_setup() argument
592 irq = inw(ioaddr + 0x2002) & 15; in corkscrew_setup()
595 irq = inw(ioaddr + 0x2002) & 15; in corkscrew_setup()
598 dev->base_addr = ioaddr; in corkscrew_setup()
600 dev->dma = inw(ioaddr + 0x2000) & 7; in corkscrew_setup()
627 pr_info("%s: 3Com %s at %#3x,", dev->name, vp->product_name, ioaddr); in corkscrew_setup()
636 outw(EEPROM_Read + i, ioaddr + Wn0EepromCmd); in corkscrew_setup()
640 if ((inw(ioaddr + Wn0EepromCmd) & 0x0200) == 0) in corkscrew_setup()
643 eeprom[i] = inw(ioaddr + Wn0EepromData); in corkscrew_setup()
670 vp->available_media = inw(ioaddr + Wn3_Options); in corkscrew_setup()
671 config = inl(ioaddr + Wn3_Config); in corkscrew_setup()
674 config, inw(ioaddr + Wn3_Options)); in corkscrew_setup()
709 int ioaddr = dev->base_addr; in corkscrew_open() local
717 outb(0x20, ioaddr + Wn3_MAC_Ctrl); /* Set the full-duplex bit. */ in corkscrew_open()
718 config = inl(ioaddr + Wn3_Config); in corkscrew_open()
745 outl(config, ioaddr + Wn3_Config); in corkscrew_open()
752 outw(TxReset, ioaddr + EL3_CMD); in corkscrew_open()
754 if (!(inw(ioaddr + EL3_STATUS) & CmdInProgress)) in corkscrew_open()
757 outw(RxReset, ioaddr + EL3_CMD); in corkscrew_open()
760 if (!(inw(ioaddr + EL3_STATUS) & CmdInProgress)) in corkscrew_open()
763 outw(SetStatusEnb | 0x00, ioaddr + EL3_CMD); in corkscrew_open()
783 dev->name, dev->irq, inw(ioaddr + Wn4_Media)); in corkscrew_open()
789 outb(dev->dev_addr[i], ioaddr + i); in corkscrew_open()
791 outw(0, ioaddr + i); in corkscrew_open()
795 outw(StartCoax, ioaddr + EL3_CMD); in corkscrew_open()
797 outw((inw(ioaddr + Wn4_Media) & ~(Media_10TP | Media_SQE)) | in corkscrew_open()
798 media_tbl[dev->if_port].media_bits, ioaddr + Wn4_Media); in corkscrew_open()
801 outw(StatsDisable, ioaddr + EL3_CMD); in corkscrew_open()
804 inb(ioaddr + i); in corkscrew_open()
805 inw(ioaddr + 10); in corkscrew_open()
806 inw(ioaddr + 12); in corkscrew_open()
809 inb(ioaddr + 12); in corkscrew_open()
811 outw(0x0040, ioaddr + Wn4_NetDiag); in corkscrew_open()
839 outl(isa_virt_to_bus(&vp->rx_ring[0]), ioaddr + UpListPtr); in corkscrew_open()
843 outb(PKT_BUF_SZ >> 8, ioaddr + TxFreeThreshold); /* Room for a packet. */ in corkscrew_open()
847 outl(0, ioaddr + DownListPtr); in corkscrew_open()
851 outw(StatsEnable, ioaddr + EL3_CMD); /* Turn on statistics. */ in corkscrew_open()
855 outw(RxEnable, ioaddr + EL3_CMD); /* Enable the receiver. */ in corkscrew_open()
856 outw(TxEnable, ioaddr + EL3_CMD); /* Enable transmitter. */ in corkscrew_open()
861 (vp->bus_master ? DMADone : 0), ioaddr + EL3_CMD); in corkscrew_open()
864 ioaddr + EL3_CMD); in corkscrew_open()
867 ioaddr + EL3_CMD); in corkscrew_open()
877 int ioaddr = dev->base_addr; in corkscrew_timer() local
888 int old_window = inw(ioaddr + EL3_CMD) >> 13; in corkscrew_timer()
891 media_status = inw(ioaddr + Wn4_Media); in corkscrew_timer()
943 ioaddr + Wn4_Media); in corkscrew_timer()
946 config = inl(ioaddr + Wn3_Config); in corkscrew_timer()
948 outl(config, ioaddr + Wn3_Config); in corkscrew_timer()
951 ioaddr + EL3_CMD); in corkscrew_timer()
968 int ioaddr = dev->base_addr; in corkscrew_timeout() local
971 dev->name, inb(ioaddr + TxStatus), in corkscrew_timeout()
972 inw(ioaddr + EL3_STATUS)); in corkscrew_timeout()
974 if ((inb(ioaddr + TxStatus) & 0x88) == 0x88) in corkscrew_timeout()
981 pr_debug(" Down list %8.8x vs. %p.\n", inl(ioaddr + DownListPtr), in corkscrew_timeout()
990 outw(TxReset, ioaddr + EL3_CMD); in corkscrew_timeout()
992 if (!(inw(ioaddr + EL3_STATUS) & CmdInProgress)) in corkscrew_timeout()
994 outw(TxEnable, ioaddr + EL3_CMD); in corkscrew_timeout()
1005 int ioaddr = dev->base_addr; in corkscrew_start_xmit() local
1035 outw(DownStall, ioaddr + EL3_CMD); in corkscrew_start_xmit()
1038 if ((inw(ioaddr + EL3_STATUS) & CmdInProgress) == 0) in corkscrew_start_xmit()
1042 if (inl(ioaddr + DownListPtr) == 0) { in corkscrew_start_xmit()
1044 ioaddr + DownListPtr); in corkscrew_start_xmit()
1047 outw(DownUnstall, ioaddr + EL3_CMD); in corkscrew_start_xmit()
1061 outl(skb->len, ioaddr + TX_FIFO); in corkscrew_start_xmit()
1066 outl((int) (skb->data), ioaddr + Wn7_MasterAddr); in corkscrew_start_xmit()
1067 outw((skb->len + 3) & ~3, ioaddr + Wn7_MasterLen); in corkscrew_start_xmit()
1069 outw(StartDMADown, ioaddr + EL3_CMD); in corkscrew_start_xmit()
1073 outsl(ioaddr + TX_FIFO, skb->data, (skb->len + 3) >> 2); in corkscrew_start_xmit()
1075 if (inw(ioaddr + TxFree) > 1536) { in corkscrew_start_xmit()
1080 ioaddr + EL3_CMD); in corkscrew_start_xmit()
1084 outsl(ioaddr + TX_FIFO, skb->data, (skb->len + 3) >> 2); in corkscrew_start_xmit()
1086 if (inw(ioaddr + TxFree) > 1536) { in corkscrew_start_xmit()
1090 outw(SetTxThreshold + (1536 >> 2), ioaddr + EL3_CMD); in corkscrew_start_xmit()
1099 while (--i > 0 && (tx_status = inb(ioaddr + TxStatus)) > 0) { in corkscrew_start_xmit()
1110 outw(TxReset, ioaddr + EL3_CMD); in corkscrew_start_xmit()
1112 if (!(inw(ioaddr + EL3_STATUS) & CmdInProgress)) in corkscrew_start_xmit()
1115 outw(TxEnable, ioaddr + EL3_CMD); in corkscrew_start_xmit()
1117 outb(0x00, ioaddr + TxStatus); /* Pop the status stack. */ in corkscrew_start_xmit()
1131 int ioaddr, status; in corkscrew_interrupt() local
1135 ioaddr = dev->base_addr; in corkscrew_interrupt()
1136 latency = inb(ioaddr + Timer); in corkscrew_interrupt()
1140 status = inw(ioaddr + EL3_STATUS); in corkscrew_interrupt()
1169 outw(AckIntr | TxAvailable, ioaddr + EL3_CMD); in corkscrew_interrupt()
1177 if (inl(ioaddr + DownListPtr) == isa_virt_to_bus(&lp->tx_ring[entry])) in corkscrew_interrupt()
1186 outw(AckIntr | DownComplete, ioaddr + EL3_CMD); in corkscrew_interrupt()
1194 outw(0x1000, ioaddr + Wn7_MasterStatus); /* Ack the event. */ in corkscrew_interrupt()
1201 outw(AckIntr | UpComplete, ioaddr + EL3_CMD); in corkscrew_interrupt()
1207 outw(AckIntr | RxEarly, ioaddr + EL3_CMD); in corkscrew_interrupt()
1213 update_stats(ioaddr, dev); in corkscrew_interrupt()
1216 if (DoneDidThat == 0 && inw(ioaddr + EL3_STATUS) & StatsFull) { in corkscrew_interrupt()
1224 pr_cont(" %2.2x", inb(ioaddr + reg)); in corkscrew_interrupt()
1231 TxComplete, ioaddr + EL3_CMD); in corkscrew_interrupt()
1237 outw(RxReset, ioaddr + EL3_CMD); in corkscrew_interrupt()
1240 outw(RxEnable, ioaddr + EL3_CMD); /* Re-enable the receiver. */ in corkscrew_interrupt()
1242 ioaddr + EL3_CMD); in corkscrew_interrupt()
1250 outw(SetStatusEnb | ((~status) & 0x7FE), ioaddr + EL3_CMD); in corkscrew_interrupt()
1251 outw(AckIntr | 0x7FF, ioaddr + EL3_CMD); in corkscrew_interrupt()
1255 outw(AckIntr | IntReq | IntLatch, ioaddr + EL3_CMD); in corkscrew_interrupt()
1257 } while ((status = inw(ioaddr + EL3_STATUS)) & (IntLatch | RxComplete)); in corkscrew_interrupt()
1268 int ioaddr = dev->base_addr; in corkscrew_rx() local
1274 inw(ioaddr + EL3_STATUS), inw(ioaddr + RxStatus)); in corkscrew_rx()
1275 while ((rx_status = inw(ioaddr + RxStatus)) > 0) { in corkscrew_rx()
1277 unsigned char rx_error = inb(ioaddr + RxErrors); in corkscrew_rx()
1304 insl(ioaddr + RX_FIFO, in corkscrew_rx()
1307 outw(RxDiscard, ioaddr + EL3_CMD); /* Pop top Rx packet. */ in corkscrew_rx()
1314 if (! (inw(ioaddr + EL3_STATUS) & CmdInProgress)) in corkscrew_rx()
1320 outw(RxDiscard, ioaddr + EL3_CMD); in corkscrew_rx()
1324 if (!(inw(ioaddr + EL3_STATUS) & CmdInProgress)) in corkscrew_rx()
1334 int ioaddr = dev->base_addr; in boomerang_rx() local
1339 inw(ioaddr + EL3_STATUS), inw(ioaddr + RxStatus)); in boomerang_rx()
1417 int ioaddr = dev->base_addr; in corkscrew_close() local
1424 dev->name, inw(ioaddr + EL3_STATUS), in corkscrew_close()
1425 inb(ioaddr + TxStatus)); in corkscrew_close()
1433 outw(StatsDisable, ioaddr + EL3_CMD); in corkscrew_close()
1436 outw(RxDisable, ioaddr + EL3_CMD); in corkscrew_close()
1437 outw(TxDisable, ioaddr + EL3_CMD); in corkscrew_close()
1441 outw(StopCoax, ioaddr + EL3_CMD); in corkscrew_close()
1445 outw(SetIntrEnb | 0x0000, ioaddr + EL3_CMD); in corkscrew_close()
1447 update_stats(ioaddr, dev); in corkscrew_close()
1449 outl(0, ioaddr + UpListPtr); in corkscrew_close()
1457 outl(0, ioaddr + DownListPtr); in corkscrew_close()
1488 static void update_stats(int ioaddr, struct net_device *dev) in update_stats() argument
1493 dev->stats.tx_carrier_errors += inb(ioaddr + 0); in update_stats()
1494 dev->stats.tx_heartbeat_errors += inb(ioaddr + 1); in update_stats()
1495 /* Multiple collisions. */ inb(ioaddr + 2); in update_stats()
1496 dev->stats.collisions += inb(ioaddr + 3); in update_stats()
1497 dev->stats.tx_window_errors += inb(ioaddr + 4); in update_stats()
1498 dev->stats.rx_fifo_errors += inb(ioaddr + 5); in update_stats()
1499 dev->stats.tx_packets += inb(ioaddr + 6); in update_stats()
1500 dev->stats.tx_packets += (inb(ioaddr + 9) & 0x30) << 4; in update_stats()
1501 /* Rx packets */ inb(ioaddr + 7); in update_stats()
1503 /* Tx deferrals */ inb(ioaddr + 8); in update_stats()
1507 inw(ioaddr + 10); /* Total Rx and Tx octets. */ in update_stats()
1508 inw(ioaddr + 12); in update_stats()
1511 inb(ioaddr + 12); in update_stats()
1523 int ioaddr = dev->base_addr; in set_rx_mode() local
1536 outw(new_mode, ioaddr + EL3_CMD); in set_rx_mode()