Lines Matching refs:vp

474 	struct corkscrew_private *vp = netdev_priv(dev);  in cleanup_card()  local
475 list_del_init(&vp->list); in cleanup_card()
480 if (vp->dev) in cleanup_card()
481 pnp_device_detach(to_pnp_dev(vp->dev)); in cleanup_card()
582 struct corkscrew_private *vp = netdev_priv(dev); in corkscrew_setup() local
590 vp->dev = &idev->dev; in corkscrew_setup()
601 vp->product_name = "3c515"; in corkscrew_setup()
602 vp->options = dev->mem_start; in corkscrew_setup()
603 vp->our_dev = dev; in corkscrew_setup()
605 if (!vp->options) { in corkscrew_setup()
607 vp->options = -1; in corkscrew_setup()
609 vp->options = options[card_number]; in corkscrew_setup()
612 if (vp->options >= 0) { in corkscrew_setup()
613 vp->media_override = vp->options & 7; in corkscrew_setup()
614 if (vp->media_override == 2) in corkscrew_setup()
615 vp->media_override = 0; in corkscrew_setup()
616 vp->full_duplex = (vp->options & 8) ? 1 : 0; in corkscrew_setup()
617 vp->bus_master = (vp->options & 16) ? 1 : 0; in corkscrew_setup()
619 vp->media_override = 7; in corkscrew_setup()
620 vp->full_duplex = 0; in corkscrew_setup()
621 vp->bus_master = 0; in corkscrew_setup()
624 list_add(&vp->list, &root_corkscrew_dev); in corkscrew_setup()
627 pr_info("%s: 3Com %s at %#3x,", dev->name, vp->product_name, ioaddr); in corkscrew_setup()
629 spin_lock_init(&vp->lock); in corkscrew_setup()
670 vp->available_media = inw(ioaddr + Wn3_Options); in corkscrew_setup()
681 vp->default_media = (config & Xcvr) >> Xcvr_shift; in corkscrew_setup()
682 vp->autoselect = config & Autoselect ? 1 : 0; in corkscrew_setup()
683 dev->if_port = vp->default_media; in corkscrew_setup()
685 if (vp->media_override != 7) { in corkscrew_setup()
687 vp->media_override, in corkscrew_setup()
688 media_tbl[vp->media_override].name); in corkscrew_setup()
689 dev->if_port = vp->media_override; in corkscrew_setup()
692 vp->capabilities = eeprom[16]; in corkscrew_setup()
693 vp->full_bus_master_tx = (vp->capabilities & 0x20) ? 1 : 0; in corkscrew_setup()
696 vp->full_bus_master_rx = (vp->capabilities & 0x20) ? 1 : 0; in corkscrew_setup()
710 struct corkscrew_private *vp = netdev_priv(dev); in corkscrew_open() local
716 if (vp->full_duplex) in corkscrew_open()
720 if (vp->media_override != 7) { in corkscrew_open()
723 dev->name, vp->media_override, in corkscrew_open()
724 media_tbl[vp->media_override].name); in corkscrew_open()
725 dev->if_port = vp->media_override; in corkscrew_open()
726 } else if (vp->autoselect) { in corkscrew_open()
729 while (!(vp->available_media & media_tbl[dev->if_port].mask)) in corkscrew_open()
736 init_timer(&vp->timer); in corkscrew_open()
737 vp->timer.expires = jiffies + media_tbl[dev->if_port].wait; in corkscrew_open()
738 vp->timer.data = (unsigned long) dev; in corkscrew_open()
739 vp->timer.function = corkscrew_timer; /* timer handler */ in corkscrew_open()
740 add_timer(&vp->timer); in corkscrew_open()
742 dev->if_port = vp->default_media; in corkscrew_open()
766 if (vp->capabilities == 0x11c7) { in corkscrew_open()
771 vp->product_name, dev)) in corkscrew_open()
776 vp->product_name, dev)) { in corkscrew_open()
816 if (vp->full_bus_master_rx) { /* Boomerang bus master. */ in corkscrew_open()
817 vp->cur_rx = vp->dirty_rx = 0; in corkscrew_open()
823 vp->rx_ring[i].next = in corkscrew_open()
824 isa_virt_to_bus(&vp->rx_ring[i + 1]); in corkscrew_open()
826 vp->rx_ring[i].next = 0; in corkscrew_open()
827 vp->rx_ring[i].status = 0; /* Clear complete bit. */ in corkscrew_open()
828 vp->rx_ring[i].length = PKT_BUF_SZ | 0x80000000; in corkscrew_open()
830 vp->rx_skbuff[i] = skb; in corkscrew_open()
834 vp->rx_ring[i].addr = isa_virt_to_bus(skb->data); in corkscrew_open()
837 vp->rx_ring[i - 1].next = in corkscrew_open()
838 isa_virt_to_bus(&vp->rx_ring[0]); /* Wrap the ring. */ in corkscrew_open()
839 outl(isa_virt_to_bus(&vp->rx_ring[0]), ioaddr + UpListPtr); in corkscrew_open()
841 if (vp->full_bus_master_tx) { /* Boomerang bus master Tx. */ in corkscrew_open()
842 vp->cur_tx = vp->dirty_tx = 0; in corkscrew_open()
846 vp->tx_skbuff[i] = NULL; in corkscrew_open()
859 (vp->full_bus_master_tx ? DownComplete : TxAvailable) | in corkscrew_open()
860 (vp->full_bus_master_rx ? UpComplete : RxComplete) | in corkscrew_open()
861 (vp->bus_master ? DMADone : 0), ioaddr + EL3_CMD); in corkscrew_open()
866 | (vp->bus_master ? DMADone : 0) | UpComplete | DownComplete, in corkscrew_open()
876 struct corkscrew_private *vp = netdev_priv(dev); in corkscrew_timer() local
885 spin_lock_irqsave(&vp->lock, flags); in corkscrew_timer()
925 while (!(vp->available_media & media_tbl[dev->if_port].mask)); in corkscrew_timer()
928 dev->if_port = vp->default_media; in corkscrew_timer()
938 vp->timer.expires = jiffies + media_tbl[dev->if_port].wait; in corkscrew_timer()
939 add_timer(&vp->timer); in corkscrew_timer()
956 spin_unlock_irqrestore(&vp->lock, flags); in corkscrew_timer()
967 struct corkscrew_private *vp = netdev_priv(dev); in corkscrew_timeout() local
979 vp->full_bus_master_tx, vp->tx_full, vp->dirty_tx, in corkscrew_timeout()
980 vp->cur_tx); in corkscrew_timeout()
982 &vp->tx_ring[0]); in corkscrew_timeout()
985 &vp->tx_ring[i], in corkscrew_timeout()
986 vp->tx_ring[i].length, vp->tx_ring[i].status); in corkscrew_timeout()
1004 struct corkscrew_private *vp = netdev_priv(dev); in corkscrew_start_xmit() local
1011 if (vp->full_bus_master_tx) { /* BOOMERANG bus-master */ in corkscrew_start_xmit()
1013 int entry = vp->cur_tx % TX_RING_SIZE; in corkscrew_start_xmit()
1018 if (vp->tx_full) /* No room to transmit with */ in corkscrew_start_xmit()
1020 if (vp->cur_tx != 0) in corkscrew_start_xmit()
1021 prev_entry = &vp->tx_ring[(vp->cur_tx - 1) % TX_RING_SIZE]; in corkscrew_start_xmit()
1026 dev->name, vp->cur_tx); in corkscrew_start_xmit()
1028 vp->tx_skbuff[entry] = skb; in corkscrew_start_xmit()
1029 vp->tx_ring[entry].next = 0; in corkscrew_start_xmit()
1030 vp->tx_ring[entry].addr = isa_virt_to_bus(skb->data); in corkscrew_start_xmit()
1031 vp->tx_ring[entry].length = skb->len | 0x80000000; in corkscrew_start_xmit()
1032 vp->tx_ring[entry].status = skb->len | 0x80000000; in corkscrew_start_xmit()
1034 spin_lock_irqsave(&vp->lock, flags); in corkscrew_start_xmit()
1041 prev_entry->next = isa_virt_to_bus(&vp->tx_ring[entry]); in corkscrew_start_xmit()
1043 outl(isa_virt_to_bus(&vp->tx_ring[entry]), in corkscrew_start_xmit()
1048 spin_unlock_irqrestore(&vp->lock, flags); in corkscrew_start_xmit()
1050 vp->cur_tx++; in corkscrew_start_xmit()
1051 if (vp->cur_tx - vp->dirty_tx > TX_RING_SIZE - 1) in corkscrew_start_xmit()
1052 vp->tx_full = 1; in corkscrew_start_xmit()
1064 if (vp->bus_master) { in corkscrew_start_xmit()
1068 vp->tx_skb = skb; in corkscrew_start_xmit()
1332 struct corkscrew_private *vp = netdev_priv(dev); in boomerang_rx() local
1333 int entry = vp->cur_rx % RX_RING_SIZE; in boomerang_rx()
1340 while ((rx_status = vp->rx_ring[entry].status) & RxDComplete) { in boomerang_rx()
1374 isa_bus_to_virt(vp->rx_ring[entry]. in boomerang_rx()
1380 skb = vp->rx_skbuff[entry]; in boomerang_rx()
1381 vp->rx_skbuff[entry] = NULL; in boomerang_rx()
1384 if (isa_bus_to_virt(vp->rx_ring[entry].addr) != temp) in boomerang_rx()
1387 isa_bus_to_virt(vp->rx_ring[entry].addr), in boomerang_rx()
1395 entry = (++vp->cur_rx) % RX_RING_SIZE; in boomerang_rx()
1398 for (; vp->cur_rx - vp->dirty_rx > 0; vp->dirty_rx++) { in boomerang_rx()
1400 entry = vp->dirty_rx % RX_RING_SIZE; in boomerang_rx()
1401 if (vp->rx_skbuff[entry] == NULL) { in boomerang_rx()
1406 vp->rx_ring[entry].addr = isa_virt_to_bus(skb->data); in boomerang_rx()
1407 vp->rx_skbuff[entry] = skb; in boomerang_rx()
1409 vp->rx_ring[entry].status = 0; /* Clear complete bit. */ in boomerang_rx()
1416 struct corkscrew_private *vp = netdev_priv(dev); in corkscrew_close() local
1430 del_timer(&vp->timer); in corkscrew_close()
1448 if (vp->full_bus_master_rx) { /* Free Boomerang bus master Rx buffers. */ in corkscrew_close()
1451 if (vp->rx_skbuff[i]) { in corkscrew_close()
1452 dev_kfree_skb(vp->rx_skbuff[i]); in corkscrew_close()
1453 vp->rx_skbuff[i] = NULL; in corkscrew_close()
1456 if (vp->full_bus_master_tx) { /* Free Boomerang bus master Tx buffers. */ in corkscrew_close()
1459 if (vp->tx_skbuff[i]) { in corkscrew_close()
1460 dev_kfree_skb(vp->tx_skbuff[i]); in corkscrew_close()
1461 vp->tx_skbuff[i] = NULL; in corkscrew_close()
1470 struct corkscrew_private *vp = netdev_priv(dev); in corkscrew_get_stats() local
1474 spin_lock_irqsave(&vp->lock, flags); in corkscrew_get_stats()
1476 spin_unlock_irqrestore(&vp->lock, flags); in corkscrew_get_stats()
1570 struct corkscrew_private *vp; in cleanup_module() local
1572 vp = list_entry(root_corkscrew_dev.next, in cleanup_module()
1574 dev = vp->our_dev; in cleanup_module()