Lines Matching refs:ioaddr
268 static int smc_probe(struct net_device *dev, int ioaddr);
290 static void smc_reset( int ioaddr );
293 static void smc_enable( int ioaddr );
296 static void smc_shutdown( int ioaddr );
300 static int smc_findirq( int ioaddr );
319 static void smc_reset( int ioaddr ) in smc_reset() argument
324 outw( RCR_SOFTRESET, ioaddr + RCR ); in smc_reset()
331 outw( RCR_CLEAR, ioaddr + RCR ); in smc_reset()
332 outw( TCR_CLEAR, ioaddr + TCR ); in smc_reset()
338 outw( inw( ioaddr + CONTROL ) | CTL_AUTO_RELEASE , ioaddr + CONTROL ); in smc_reset()
342 outw( MC_RESET, ioaddr + MMU_CMD ); in smc_reset()
348 outb( 0, ioaddr + INT_MASK ); in smc_reset()
359 static void smc_enable( int ioaddr ) in smc_enable() argument
363 outw( TCR_NORMAL, ioaddr + TCR ); in smc_enable()
364 outw( RCR_NORMAL, ioaddr + RCR ); in smc_enable()
368 outb( SMC_INTERRUPT_MASK, ioaddr + INT_MASK ); in smc_enable()
385 static void smc_shutdown( int ioaddr ) in smc_shutdown() argument
389 outb( 0, ioaddr + INT_MASK ); in smc_shutdown()
393 outb( RCR_CLEAR, ioaddr + RCR ); in smc_shutdown()
394 outb( TCR_CLEAR, ioaddr + TCR ); in smc_shutdown()
398 outw( inw( ioaddr + CONTROL ), CTL_POWERDOWN, ioaddr + CONTROL ); in smc_shutdown()
421 static void smc_setmulticast(int ioaddr, struct net_device *dev) in smc_setmulticast() argument
447 outb( multicast_table[i], ioaddr + MULTICAST1 + i ); in smc_setmulticast()
471 unsigned int ioaddr = dev->base_addr; in smc_wait_to_send_packet() local
522 outw( MC_ALLOC | numPages, ioaddr + MMU_CMD ); in smc_wait_to_send_packet()
539 status = inb( ioaddr + INTERRUPT ); in smc_wait_to_send_packet()
542 outb( IM_ALLOC_INT, ioaddr + INTERRUPT ); in smc_wait_to_send_packet()
584 unsigned int ioaddr; in smc_hardware_send_packet() local
587 ioaddr = dev->base_addr; in smc_hardware_send_packet()
597 packet_no = inb( ioaddr + PNR_ARR + 1 ); in smc_hardware_send_packet()
608 outb( packet_no, ioaddr + PNR_ARR ); in smc_hardware_send_packet()
611 outw( PTR_AUTOINC , ioaddr + POINTER ); in smc_hardware_send_packet()
621 outl( (length +6 ) << 16 , ioaddr + DATA_1 ); in smc_hardware_send_packet()
623 outw( 0, ioaddr + DATA_1 ); in smc_hardware_send_packet()
625 outb( (length+6) & 0xFF,ioaddr + DATA_1 ); in smc_hardware_send_packet()
626 outb( (length+6) >> 8 , ioaddr + DATA_1 ); in smc_hardware_send_packet()
638 outsl(ioaddr + DATA_1, buf, length >> 2 ); in smc_hardware_send_packet()
639 outw( *((word *)(buf + (length & 0xFFFFFFFC))),ioaddr +DATA_1); in smc_hardware_send_packet()
642 outsl(ioaddr + DATA_1, buf, length >> 2 ); in smc_hardware_send_packet()
644 outsw(ioaddr + DATA_1 , buf, (length ) >> 1); in smc_hardware_send_packet()
649 outw( 0, ioaddr + DATA_1 ); in smc_hardware_send_packet()
651 outb( buf[length -1 ], ioaddr + DATA_1 ); in smc_hardware_send_packet()
652 outb( 0x20, ioaddr + DATA_1); in smc_hardware_send_packet()
659 outw( MC_ENQUEUE , ioaddr + MMU_CMD ); in smc_hardware_send_packet()
739 static int __init smc_findirq(int ioaddr) in smc_findirq() argument
757 outb( IM_ALLOC_INT, ioaddr + INT_MASK ); in smc_findirq()
763 outw( MC_ALLOC | 1, ioaddr + MMU_CMD ); in smc_findirq()
771 int_status = inb( ioaddr + INTERRUPT ); in smc_findirq()
792 outb( 0, ioaddr + INT_MASK ); in smc_findirq()
799 if (smcdev->port == ioaddr) in smc_findirq()
845 static int __init smc_probe(struct net_device *dev, int ioaddr) in smc_probe() argument
862 if (!request_region(ioaddr, SMC_IO_EXTENT, DRV_NAME)) in smc_probe()
869 bank = inw( ioaddr + BANK_SELECT ); in smc_probe()
876 outw( 0x0, ioaddr + BANK_SELECT ); in smc_probe()
877 bank = inw( ioaddr + BANK_SELECT ); in smc_probe()
886 base_address_register = inw( ioaddr + BASE ); in smc_probe()
887 if ( ioaddr != ( base_address_register >> 3 & 0x3E0 ) ) { in smc_probe()
890 ioaddr, base_address_register >> 3 & 0x3E0 ); in smc_probe()
901 revision_register = inw( ioaddr + REVISION ); in smc_probe()
905 " %x, Contact author.\n", ioaddr, revision_register); in smc_probe()
918 dev->base_addr = ioaddr; in smc_probe()
927 address = inw( ioaddr + ADDR0 + i ); in smc_probe()
936 memory_info_register = inw( ioaddr + MIR ); in smc_probe()
937 memory_cfg_register = inw( ioaddr + MCR ); in smc_probe()
947 revision_register = inw( ioaddr + REVISION ); in smc_probe()
958 configuration_register = inw( ioaddr + CONFIG ); in smc_probe()
967 smc_reset( ioaddr ); in smc_probe()
990 dev->irq = smc_findirq( ioaddr ); in smc_probe()
994 smc_reset( ioaddr ); in smc_probe()
1006 version_string, revision_register & 0xF, ioaddr, dev->irq, in smc_probe()
1027 release_region(ioaddr, SMC_IO_EXTENT); in smc_probe()
1050 int ioaddr = dev->base_addr; in smc_open() local
1059 smc_reset( ioaddr ); in smc_open()
1060 smc_enable( ioaddr ); in smc_open()
1066 outw( inw( ioaddr + CONFIG ) & ~CFG_AUI_SELECT, in smc_open()
1067 ioaddr + CONFIG ); in smc_open()
1070 outw( inw( ioaddr + CONFIG ) | CFG_AUI_SELECT, in smc_open()
1071 ioaddr + CONFIG ); in smc_open()
1085 outw( address, ioaddr + ADDR0 + i ); in smc_open()
1128 int ioaddr = dev->base_addr; in smc_rcv() local
1135 packet_number = inw( ioaddr + FIFO_PORTS ); in smc_rcv()
1145 outw( PTR_READ | PTR_RCV | PTR_AUTOINC, ioaddr + POINTER ); in smc_rcv()
1148 status = inw( ioaddr + DATA_1 ); in smc_rcv()
1149 packet_length = inw( ioaddr + DATA_1 ); in smc_rcv()
1195 insl(ioaddr + DATA_1 , data, packet_length >> 2 ); in smc_rcv()
1197 insb( ioaddr + DATA_1, data + (packet_length & 0xFFFFFC), in smc_rcv()
1202 insw(ioaddr + DATA_1 , data, packet_length >> 1); in smc_rcv()
1205 *(data++) = inb( ioaddr + DATA_1 ); in smc_rcv()
1228 outw( MC_RELEASE, ioaddr + MMU_CMD ); in smc_rcv()
1249 int ioaddr = dev->base_addr; in smc_tx() local
1258 saved_packet = inb( ioaddr + PNR_ARR ); in smc_tx()
1259 packet_no = inw( ioaddr + FIFO_PORTS ); in smc_tx()
1263 outb( packet_no, ioaddr + PNR_ARR ); in smc_tx()
1266 outw( PTR_AUTOINC | PTR_READ, ioaddr + POINTER ); in smc_tx()
1268 tx_status = inw( ioaddr + DATA_1 ); in smc_tx()
1286 outw( inw( ioaddr + TCR ) | TCR_ENABLE, ioaddr + TCR ); in smc_tx()
1290 outw( MC_FREEPKT, ioaddr + MMU_CMD ); in smc_tx()
1295 outb( saved_packet, ioaddr + PNR_ARR ); in smc_tx()
1314 int ioaddr = dev->base_addr; in smc_interrupt() local
1329 saved_bank = inw( ioaddr + BANK_SELECT ); in smc_interrupt()
1332 saved_pointer = inw( ioaddr + POINTER ); in smc_interrupt()
1334 mask = inb( ioaddr + INT_MASK ); in smc_interrupt()
1336 outb( 0, ioaddr + INT_MASK ); in smc_interrupt()
1345 status = inb( ioaddr + INTERRUPT ) & mask; in smc_interrupt()
1363 outb(IM_TX_INT, ioaddr + INTERRUPT ); in smc_interrupt()
1367 card_stats = inw( ioaddr + COUNTER ); in smc_interrupt()
1379 outb( IM_TX_EMPTY_INT, ioaddr + INTERRUPT ); in smc_interrupt()
1402 outb( IM_RX_OVRN_INT, ioaddr + INTERRUPT ); in smc_interrupt()
1407 outb( IM_ERCV_INT, ioaddr + INTERRUPT ); in smc_interrupt()
1414 outb( mask, ioaddr + INT_MASK ); in smc_interrupt()
1417 outw( saved_pointer, ioaddr + POINTER ); in smc_interrupt()
1454 short ioaddr = dev->base_addr; in smc_set_multicast_list() local
1458 outw( inw(ioaddr + RCR ) | RCR_PROMISC, ioaddr + RCR ); in smc_set_multicast_list()
1470 outw( inw(ioaddr + RCR ) | RCR_ALMUL, ioaddr + RCR ); in smc_set_multicast_list()
1479 outw( inw( ioaddr + RCR ) & ~(RCR_PROMISC | RCR_ALMUL), in smc_set_multicast_list()
1480 ioaddr + RCR ); in smc_set_multicast_list()
1483 smc_setmulticast(ioaddr, dev); in smc_set_multicast_list()
1486 outw( inw( ioaddr + RCR ) & ~(RCR_PROMISC | RCR_ALMUL), in smc_set_multicast_list()
1487 ioaddr + RCR ); in smc_set_multicast_list()
1494 outw( 0, ioaddr + MULTICAST1 ); in smc_set_multicast_list()
1495 outw( 0, ioaddr + MULTICAST2 ); in smc_set_multicast_list()
1496 outw( 0, ioaddr + MULTICAST3 ); in smc_set_multicast_list()
1497 outw( 0, ioaddr + MULTICAST4 ); in smc_set_multicast_list()