Lines Matching refs:dev

187 #define NET_LOCAL_LOCK(dev) (((struct net_local *)netdev_priv(dev))->lock)
190 * Look for SBNI card which addr stored in dev->base_addr, if nonzero.
195 sbni_isa_probe( struct net_device *dev )
197 if( dev->base_addr > 0x1ff &&
198 request_region( dev->base_addr, SBNI_IO_EXTENT, dev->name ) &&
199 sbni_probe1( dev, dev->base_addr, dev->irq ) )
204 dev->base_addr);
219 static void __init sbni_devsetup(struct net_device *dev)
221 ether_setup( dev );
222 dev->netdev_ops = &sbni_netdev_ops;
227 struct net_device *dev;
230 dev = alloc_netdev(sizeof(struct net_local), "sbni",
232 if (!dev)
235 dev->netdev_ops = &sbni_netdev_ops;
237 sprintf(dev->name, "sbni%d", unit);
238 netdev_boot_setup_check(dev);
240 err = sbni_init(dev);
242 free_netdev(dev);
246 err = register_netdev(dev);
248 release_region( dev->base_addr, SBNI_IO_EXTENT );
249 free_netdev(dev);
256 static int __init sbni_init(struct net_device *dev)
259 if( dev->base_addr )
260 return sbni_isa_probe( dev );
264 dev->base_addr = io[ num ];
265 dev->irq = irq[ num ];
271 if( dev->base_addr )
272 return sbni_isa_probe( dev );
275 if( !skip_pci_probe && !sbni_pci_probe( dev ) )
287 if( request_region( ioaddr, SBNI_IO_EXTENT, dev->name ) &&
288 sbni_probe1( dev, ioaddr, 0 ))
297 sbni_pci_probe( struct net_device *dev )
314 if( !request_region( pci_ioaddr, SBNI_IO_EXTENT, dev->name ) ) {
320 dev->name ) )
336 if( sbni_probe1( dev, pci_ioaddr, pci_irq_line ) ) {
337 SET_NETDEV_DEV(dev, &pdev->dev);
349 sbni_probe1( struct net_device *dev, unsigned long ioaddr, int irq )
371 pr_err("%s: can't detect device irq!\n", dev->name);
378 dev->irq = irq;
379 dev->base_addr = ioaddr;
381 /* Fill in sbni-specific dev fields. */
382 nl = netdev_priv(dev);
384 pr_err("%s: unable to get memory!\n", dev->name);
393 *(__be16 *)dev->dev_addr = htons( 0x00ff );
394 *(__be32 *)(dev->dev_addr + 2) = htonl( 0x01000000 |
397 (u32)((long)netdev_priv(dev))) & 0x00ffffff));
415 dev->name, dev->base_addr, dev->irq,
416 ((u8 *)dev->dev_addr)[3],
417 ((u8 *)dev->dev_addr)[4],
418 ((u8 *)dev->dev_addr)[5]);
421 dev->name,
431 nl->master = dev;
435 sbni_cards[ num++ ] = dev;
436 return dev;
444 sbni_start_xmit( struct sk_buff *skb, struct net_device *dev )
448 netif_stop_queue( dev );
451 for( p = dev; p; ) {
458 /* Idle dev is found */
461 netif_start_queue( dev );
472 sbni_start_xmit( struct sk_buff *skb, struct net_device *dev )
474 struct net_local *nl = netdev_priv(dev);
476 netif_stop_queue( dev );
479 prepare_to_send( skb, dev );
498 * dev of successfully attached ISA SBNI boards is linked to list.
500 * has found dev with same irq and ioaddr different by 4 then it assumes
507 struct net_device *dev = dev_id;
508 struct net_local *nl = netdev_priv(dev);
517 if( inb( dev->base_addr + CSR0 ) & (RC_RDY | TR_RDY) ) {
518 handle_channel( dev );
536 handle_channel( struct net_device *dev )
538 struct net_local *nl = netdev_priv(dev);
539 unsigned long ioaddr = dev->base_addr;
561 req_ans = recv_frame( dev );
569 netdev_err(dev, "internal error!\n");
573 send_frame( dev );
594 recv_frame( struct net_device *dev )
596 struct net_local *nl = netdev_priv(dev);
597 unsigned long ioaddr = dev->base_addr;
606 ? upload_data( dev, framelen, frameno, is_first, crc )
609 interpret_ack( dev, ack );
619 change_level( dev );
629 send_frame( struct net_device *dev )
631 struct net_local *nl = netdev_priv(dev);
648 drop_xmit_queue( dev );
654 send_frame_header( dev, &crc );
663 download_data( dev, &crc );
668 outsb( dev->base_addr + DAT, (u8 *)&crc, sizeof crc );
671 outb( inb( dev->base_addr + CSR0 ) & ~TR_REQ, dev->base_addr + CSR0 );
675 outb( inb( dev->base_addr + CSR0 ) | TR_REQ,
676 dev->base_addr + CSR0 );
686 download_data( struct net_device *dev, u32 *crc_p )
688 struct net_local *nl = netdev_priv(dev);
693 outsb( dev->base_addr + DAT, skb->data + nl->outpos, len );
698 outb( 0, dev->base_addr + DAT );
705 upload_data( struct net_device *dev, unsigned framelen, unsigned frameno,
708 struct net_local *nl = netdev_priv(dev);
720 frame_ok = append_frame_to_pkt( dev, framelen, crc );
726 else if( (frame_ok = skip_tail( dev->base_addr, framelen, crc ))
734 dev->stats.rx_errors++;
735 dev->stats.rx_missed_errors++;
740 frame_ok = skip_tail( dev->base_addr, framelen, crc );
752 dev->stats.rx_errors++;
753 dev->stats.rx_crc_errors++;
762 send_complete( struct net_device *dev )
764 struct net_local *nl = netdev_priv(dev);
770 dev->stats.tx_packets++;
771 dev->stats.tx_bytes += nl->tx_buf_p->len;
784 interpret_ack( struct net_device *dev, unsigned ack )
786 struct net_local *nl = netdev_priv(dev);
799 send_complete( dev );
803 netif_wake_queue( dev );
819 append_frame_to_pkt( struct net_device *dev, unsigned framelen, u32 crc )
821 struct net_local *nl = netdev_priv(dev);
828 if( !nl->rx_buf_p && !(nl->rx_buf_p = get_rx_buf( dev )) )
832 insb( dev->base_addr + DAT, p, framelen );
838 indicate_pkt( dev );
850 prepare_to_send( struct sk_buff *skb, struct net_device *dev )
852 struct net_local *nl = netdev_priv(dev);
858 netdev_err(dev, "memory leak!\n");
871 outb( inb( dev->base_addr + CSR0 ) | TR_REQ, dev->base_addr + CSR0 );
875 netif_trans_update(dev);
881 drop_xmit_queue( struct net_device *dev )
883 struct net_local *nl = netdev_priv(dev);
892 dev->stats.tx_errors++;
893 dev->stats.tx_carrier_errors++;
905 netif_start_queue( dev );
906 netif_trans_update(dev);
912 send_frame_header( struct net_device *dev, u32 *crc_p )
914 struct net_local *nl = netdev_priv(dev);
927 outb( SBNI_SIG, dev->base_addr + DAT );
930 outb( value, dev->base_addr + DAT );
933 outb( value, dev->base_addr + DAT );
936 outb( nl->tx_frameno, dev->base_addr + DAT );
938 outb( 0, dev->base_addr + DAT );
1001 get_rx_buf( struct net_device *dev )
1014 indicate_pkt( struct net_device *dev )
1016 struct net_local *nl = netdev_priv(dev);
1027 skb->protocol = eth_type_trans( skb, dev );
1029 ++dev->stats.rx_packets;
1030 dev->stats.rx_bytes += nl->inppos;
1047 struct net_device *dev = nl->watchdog_dev;
1053 csr0 = inb( dev->base_addr + CSR0 );
1063 timeout_change_level( dev );
1066 dev->base_addr + CSR1 );
1067 csr0 = inb( dev->base_addr + CSR0 );
1072 outb( csr0 | RC_CHK, dev->base_addr + CSR0 );
1093 card_start( struct net_device *dev )
1095 struct net_local *nl = netdev_priv(dev);
1106 outb( *(u_char *)&nl->csr1 | PR_RES, dev->base_addr + CSR1 );
1107 outb( EN_INT, dev->base_addr + CSR0 );
1115 change_level( struct net_device *dev )
1117 struct net_local *nl = netdev_priv(dev);
1130 inb( dev->base_addr + CSR0 ); /* needs for PCI cards */
1131 outb( *(u8 *)&nl->csr1, dev->base_addr + CSR1 );
1139 timeout_change_level( struct net_device *dev )
1141 struct net_local *nl = netdev_priv(dev);
1148 inb( dev->base_addr + CSR0 );
1149 outb( *(unsigned char *)&nl->csr1, dev->base_addr + CSR1 );
1162 sbni_open( struct net_device *dev )
1164 struct net_local *nl = netdev_priv(dev);
1172 if( dev->base_addr < 0x400 ) { /* ISA only */
1175 if( (*p)->irq == dev->irq &&
1176 ((*p)->base_addr == dev->base_addr + 4 ||
1177 (*p)->base_addr == dev->base_addr - 4) &&
1181 ->second = dev;
1182 netdev_notice(dev, "using shared irq with %s\n",
1189 if( request_irq(dev->irq, sbni_interrupt, IRQF_SHARED, dev->name, dev) ) {
1190 netdev_err(dev, "unable to get IRQ %d\n", dev->irq);
1197 memset( &dev->stats, 0, sizeof(struct net_device_stats) );
1200 card_start( dev );
1202 netif_start_queue( dev );
1205 nl->watchdog_dev = dev;
1216 sbni_close( struct net_device *dev )
1218 struct net_local *nl = netdev_priv(dev);
1221 netdev_notice(dev, "Secondary channel (%s) is active!\n",
1228 emancipate( dev );
1237 drop_xmit_queue( dev );
1238 netif_stop_queue( dev );
1242 outb( 0, dev->base_addr + CSR0 );
1245 free_irq( dev->irq, dev );
1300 sbni_ioctl( struct net_device *dev, struct ifreq *ifr, int cmd )
1302 struct net_local *nl = netdev_priv(dev);
1325 flags.mac_addr = *(u32 *)(dev->dev_addr + 3);
1351 outb( *(u8 *)&nl->csr1 | PR_RES, dev->base_addr + CSR1 );
1365 netdev_err(dev, "trying to enslave non-active device %s\n",
1372 return enslave( dev, slave_dev );
1378 return emancipate( dev );
1393 enslave( struct net_device *dev, struct net_device *slave_dev )
1395 struct net_local *nl = netdev_priv(dev);
1410 snl->master = dev;
1417 netif_wake_queue( dev ); /* Now we are able to transmit */
1421 netdev_notice(dev, "slave device (%s) attached\n", slave_dev->name);
1427 emancipate( struct net_device *dev )
1429 struct net_local *snl = netdev_priv(dev);
1438 drop_xmit_queue( dev );
1443 if( t->link == dev ) {
1451 snl->master = dev;
1454 netif_start_queue( dev );
1459 dev_put( dev );
1466 set_multicast_list( struct net_device *dev )
1485 struct net_device *dev;
1489 dev = alloc_netdev(sizeof(struct net_local), "sbni%d",
1491 if( !dev)
1494 sprintf( dev->name, "sbni%d", num );
1496 err = sbni_init(dev);
1498 free_netdev(dev);
1502 if( register_netdev( dev ) ) {
1503 release_region( dev->base_addr, SBNI_IO_EXTENT );
1504 free_netdev( dev );
1518 struct net_device *dev = sbni_cards[i];
1519 if (dev != NULL) {
1520 unregister_netdev(dev);
1521 release_region(dev->base_addr, SBNI_IO_EXTENT);
1522 free_netdev(dev);