Lines Matching refs:vp

460 	struct corkscrew_private *vp = netdev_priv(dev);
461 list_del_init(&vp->list);
466 if (vp->dev)
467 pnp_device_detach(to_pnp_dev(vp->dev));
567 struct corkscrew_private *vp = netdev_priv(dev);
576 vp->dev = &idev->dev;
587 vp->product_name = "3c515";
588 vp->options = dev->mem_start;
589 vp->our_dev = dev;
591 if (!vp->options) {
593 vp->options = -1;
595 vp->options = options[card_number];
598 if (vp->options >= 0) {
599 vp->media_override = vp->options & 7;
600 if (vp->media_override == 2)
601 vp->media_override = 0;
602 vp->full_duplex = (vp->options & 8) ? 1 : 0;
603 vp->bus_master = (vp->options & 16) ? 1 : 0;
605 vp->media_override = 7;
606 vp->full_duplex = 0;
607 vp->bus_master = 0;
610 list_add(&vp->list, &root_corkscrew_dev);
613 pr_info("%s: 3Com %s at %#3x,", dev->name, vp->product_name, ioaddr);
615 spin_lock_init(&vp->lock);
617 timer_setup(&vp->timer, corkscrew_timer, 0);
658 vp->available_media = inw(ioaddr + Wn3_Options);
669 vp->default_media = (config & Xcvr) >> Xcvr_shift;
670 vp->autoselect = config & Autoselect ? 1 : 0;
671 dev->if_port = vp->default_media;
673 if (vp->media_override != 7) {
675 vp->media_override,
676 media_tbl[vp->media_override].name);
677 dev->if_port = vp->media_override;
680 vp->capabilities = eeprom[16];
681 vp->full_bus_master_tx = (vp->capabilities & 0x20) ? 1 : 0;
683 /* vp->full_bus_master_rx = 0; */
684 vp->full_bus_master_rx = (vp->capabilities & 0x20) ? 1 : 0;
698 struct corkscrew_private *vp = netdev_priv(dev);
705 if (vp->full_duplex)
709 if (vp->media_override != 7) {
712 dev->name, vp->media_override,
713 media_tbl[vp->media_override].name);
714 dev->if_port = vp->media_override;
715 } else if (vp->autoselect) {
718 while (!(vp->available_media & media_tbl[dev->if_port].mask))
726 dev->if_port = vp->default_media;
750 if (vp->capabilities == 0x11c7) {
755 vp->product_name, dev))
760 vp->product_name, dev)) {
765 mod_timer(&vp->timer, jiffies + media_tbl[dev->if_port].wait);
803 if (vp->full_bus_master_rx) { /* Boomerang bus master. */
804 vp->cur_rx = vp->dirty_rx = 0;
810 vp->rx_ring[i].next =
811 isa_virt_to_bus(&vp->rx_ring[i + 1]);
813 vp->rx_ring[i].next = 0;
814 vp->rx_ring[i].status = 0; /* Clear complete bit. */
815 vp->rx_ring[i].length = PKT_BUF_SZ | 0x80000000;
817 vp->rx_skbuff[i] = skb;
821 vp->rx_ring[i].addr = isa_virt_to_bus(skb->data);
824 vp->rx_ring[i - 1].next =
825 isa_virt_to_bus(&vp->rx_ring[0]); /* Wrap the ring. */
826 outl(isa_virt_to_bus(&vp->rx_ring[0]), ioaddr + UpListPtr);
828 if (vp->full_bus_master_tx) { /* Boomerang bus master Tx. */
829 vp->cur_tx = vp->dirty_tx = 0;
833 vp->tx_skbuff[i] = NULL;
846 (vp->full_bus_master_tx ? DownComplete : TxAvailable) |
847 (vp->full_bus_master_rx ? UpComplete : RxComplete) |
848 (vp->bus_master ? DMADone : 0), ioaddr + EL3_CMD);
853 | (vp->bus_master ? DMADone : 0) | UpComplete | DownComplete,
862 struct corkscrew_private *vp = from_timer(vp, t, timer);
863 struct net_device *dev = vp->our_dev;
872 spin_lock_irqsave(&vp->lock, flags);
912 while (!(vp->available_media & media_tbl[dev->if_port].mask));
915 dev->if_port = vp->default_media;
925 vp->timer.expires = jiffies + media_tbl[dev->if_port].wait;
926 add_timer(&vp->timer);
943 spin_unlock_irqrestore(&vp->lock, flags);
954 struct corkscrew_private *vp = netdev_priv(dev);
966 vp->full_bus_master_tx, vp->tx_full, vp->dirty_tx,
967 vp->cur_tx);
969 &vp->tx_ring[0]);
972 &vp->tx_ring[i],
973 vp->tx_ring[i].length, vp->tx_ring[i].status);
991 struct corkscrew_private *vp = netdev_priv(dev);
998 if (vp->full_bus_master_tx) { /* BOOMERANG bus-master */
1000 int entry = vp->cur_tx % TX_RING_SIZE;
1005 if (vp->tx_full) /* No room to transmit with */
1007 if (vp->cur_tx != 0)
1008 prev_entry = &vp->tx_ring[(vp->cur_tx - 1) % TX_RING_SIZE];
1013 dev->name, vp->cur_tx);
1014 /* vp->tx_full = 1; */
1015 vp->tx_skbuff[entry] = skb;
1016 vp->tx_ring[entry].next = 0;
1017 vp->tx_ring[entry].addr = isa_virt_to_bus(skb->data);
1018 vp->tx_ring[entry].length = skb->len | 0x80000000;
1019 vp->tx_ring[entry].status = skb->len | 0x80000000;
1021 spin_lock_irqsave(&vp->lock, flags);
1028 prev_entry->next = isa_virt_to_bus(&vp->tx_ring[entry]);
1030 outl(isa_virt_to_bus(&vp->tx_ring[entry]),
1035 spin_unlock_irqrestore(&vp->lock, flags);
1037 vp->cur_tx++;
1038 if (vp->cur_tx - vp->dirty_tx > TX_RING_SIZE - 1)
1039 vp->tx_full = 1;
1051 if (vp->bus_master) {
1055 vp->tx_skb = skb;
1319 struct corkscrew_private *vp = netdev_priv(dev);
1320 int entry = vp->cur_rx % RX_RING_SIZE;
1327 while ((rx_status = vp->rx_ring[entry].status) & RxDComplete) {
1361 isa_bus_to_virt(vp->rx_ring[entry].addr),
1367 skb = vp->rx_skbuff[entry];
1368 vp->rx_skbuff[entry] = NULL;
1371 if (isa_bus_to_virt(vp->rx_ring[entry].addr) != temp)
1374 isa_bus_to_virt(vp->rx_ring[entry].addr),
1382 entry = (++vp->cur_rx) % RX_RING_SIZE;
1385 for (; vp->cur_rx - vp->dirty_rx > 0; vp->dirty_rx++) {
1387 entry = vp->dirty_rx % RX_RING_SIZE;
1388 if (vp->rx_skbuff[entry] == NULL) {
1393 vp->rx_ring[entry].addr = isa_virt_to_bus(skb->data);
1394 vp->rx_skbuff[entry] = skb;
1396 vp->rx_ring[entry].status = 0; /* Clear complete bit. */
1403 struct corkscrew_private *vp = netdev_priv(dev);
1417 del_timer_sync(&vp->timer);
1435 if (vp->full_bus_master_rx) { /* Free Boomerang bus master Rx buffers. */
1438 if (vp->rx_skbuff[i]) {
1439 dev_kfree_skb(vp->rx_skbuff[i]);
1440 vp->rx_skbuff[i] = NULL;
1443 if (vp->full_bus_master_tx) { /* Free Boomerang bus master Tx buffers. */
1446 if (vp->tx_skbuff[i]) {
1447 dev_kfree_skb(vp->tx_skbuff[i]);
1448 vp->tx_skbuff[i] = NULL;
1457 struct corkscrew_private *vp = netdev_priv(dev);
1461 spin_lock_irqsave(&vp->lock, flags);
1463 spin_unlock_irqrestore(&vp->lock, flags);
1556 struct corkscrew_private *vp;
1558 vp = list_entry(root_corkscrew_dev.next,
1560 dev = vp->our_dev;