Lines Matching refs:np

60 static void dl2k_enable_int(struct netdev_private *np)  in dl2k_enable_int()  argument
62 void __iomem *ioaddr = np->ioaddr; in dl2k_enable_int()
114 struct netdev_private *np; in rio_probe1() local
139 dev = alloc_etherdev (sizeof (*np)); in rio_probe1()
144 np = netdev_priv(dev); in rio_probe1()
150 np->eeprom_addr = ioaddr; in rio_probe1()
158 np->ioaddr = ioaddr; in rio_probe1()
159 np->chip_id = chip_idx; in rio_probe1()
160 np->pdev = pdev; in rio_probe1()
161 spin_lock_init (&np->tx_lock); in rio_probe1()
162 spin_lock_init (&np->rx_lock); in rio_probe1()
165 np->an_enable = 1; in rio_probe1()
166 np->tx_coalesce = 1; in rio_probe1()
169 np->an_enable = 0; in rio_probe1()
173 np->an_enable = 2; in rio_probe1()
176 np->speed = 100; in rio_probe1()
177 np->full_duplex = 1; in rio_probe1()
180 np->speed = 100; in rio_probe1()
181 np->full_duplex = 0; in rio_probe1()
184 np->speed = 10; in rio_probe1()
185 np->full_duplex = 1; in rio_probe1()
188 np->speed = 10; in rio_probe1()
189 np->full_duplex = 0; in rio_probe1()
192 np->speed=1000; in rio_probe1()
193 np->full_duplex=1; in rio_probe1()
196 np->speed = 1000; in rio_probe1()
197 np->full_duplex = 0; in rio_probe1()
199 np->an_enable = 1; in rio_probe1()
203 np->jumbo = 1; in rio_probe1()
206 np->jumbo = 0; in rio_probe1()
210 np->vlan = (vlan[card_idx] > 0 && vlan[card_idx] < 4096) ? in rio_probe1()
213 np->rx_coalesce = rx_coalesce; in rio_probe1()
214 np->rx_timeout = rx_timeout; in rio_probe1()
215 np->coalesce = 1; in rio_probe1()
217 np->tx_flow = (tx_flow == 0) ? 0 : 1; in rio_probe1()
218 np->rx_flow = (rx_flow == 0) ? 0 : 1; in rio_probe1()
233 dev->max_mtu = np->jumbo ? MAX_JUMBO : PACKET_SIZE; in rio_probe1()
240 np->tx_ring = ring_space; in rio_probe1()
241 np->tx_ring_dma = ring_dma; in rio_probe1()
246 np->rx_ring = ring_space; in rio_probe1()
247 np->rx_ring_dma = ring_dma; in rio_probe1()
258 np->phy_media = (dr16(ASICCtrl) & PhyMedia) ? 1 : 0; in rio_probe1()
259 np->link_status = 0; in rio_probe1()
261 if (np->phy_media) { in rio_probe1()
263 if (np->an_enable == 2) { in rio_probe1()
264 np->an_enable = 1; in rio_probe1()
269 if (np->speed == 1000) in rio_probe1()
270 np->an_enable = 1; in rio_probe1()
280 dev->name, np->name, dev->dev_addr, irq); in rio_probe1()
284 if (np->coalesce) in rio_probe1()
288 np->rx_coalesce, np->rx_timeout*640); in rio_probe1()
289 if (np->vlan) in rio_probe1()
290 printk(KERN_INFO "vlan(id):\t%d\n", np->vlan); in rio_probe1()
294 pci_free_consistent (pdev, RX_TOTAL_SIZE, np->rx_ring, np->rx_ring_dma); in rio_probe1()
296 pci_free_consistent (pdev, TX_TOTAL_SIZE, np->tx_ring, np->tx_ring_dma); in rio_probe1()
299 pci_iounmap(pdev, np->ioaddr); in rio_probe1()
301 pci_iounmap(pdev, np->eeprom_addr); in rio_probe1()
314 struct netdev_private *np = netdev_priv(dev); in find_miiphy() local
317 np->phy_addr = 1; in find_miiphy()
322 np->phy_addr = i; in find_miiphy()
336 struct netdev_private *np = netdev_priv(dev); in parse_eeprom() local
337 void __iomem *ioaddr = np->ioaddr; in parse_eeprom()
347 ((__le16 *) sromdata)[i] = cpu_to_le16(read_eeprom(np, i)); in parse_eeprom()
349 if (np->pdev->vendor == PCI_VENDOR_ID_DLINK) { /* D-Link Only */ in parse_eeprom()
363 if (np->chip_id == CHIP_IP1000A) { in parse_eeprom()
364 np->led_mode = psrom->led_mode; in parse_eeprom()
368 if (np->pdev->vendor != PCI_VENDOR_ID_DLINK) { in parse_eeprom()
388 np->duplex_polarity = psib[i]; in parse_eeprom()
392 np->wake_polarity = psib[i]; in parse_eeprom()
396 memcpy (np->name, &(psib[i]), j); in parse_eeprom()
415 struct netdev_private *np = netdev_priv(dev); in rio_set_led_mode() local
416 void __iomem *ioaddr = np->ioaddr; in rio_set_led_mode()
419 if (np->chip_id != CHIP_IP1000A) in rio_set_led_mode()
425 if (np->led_mode & 0x01) in rio_set_led_mode()
427 if (np->led_mode & 0x02) in rio_set_led_mode()
429 if (np->led_mode & 0x08) in rio_set_led_mode()
442 struct netdev_private *np = netdev_priv(dev); in free_list() local
448 skb = np->rx_skbuff[i]; in free_list()
450 pci_unmap_single(np->pdev, desc_to_dma(&np->rx_ring[i]), in free_list()
453 np->rx_skbuff[i] = NULL; in free_list()
455 np->rx_ring[i].status = 0; in free_list()
456 np->rx_ring[i].fraginfo = 0; in free_list()
459 skb = np->tx_skbuff[i]; in free_list()
461 pci_unmap_single(np->pdev, desc_to_dma(&np->tx_ring[i]), in free_list()
464 np->tx_skbuff[i] = NULL; in free_list()
469 static void rio_reset_ring(struct netdev_private *np) in rio_reset_ring() argument
473 np->cur_rx = 0; in rio_reset_ring()
474 np->cur_tx = 0; in rio_reset_ring()
475 np->old_rx = 0; in rio_reset_ring()
476 np->old_tx = 0; in rio_reset_ring()
479 np->tx_ring[i].status = cpu_to_le64(TFDDone); in rio_reset_ring()
482 np->rx_ring[i].status = 0; in rio_reset_ring()
488 struct netdev_private *np = netdev_priv(dev); in alloc_list() local
491 rio_reset_ring(np); in alloc_list()
492 np->rx_buf_sz = (dev->mtu <= 1500 ? PACKET_SIZE : dev->mtu + 32); in alloc_list()
496 np->tx_skbuff[i] = NULL; in alloc_list()
497 np->tx_ring[i].next_desc = cpu_to_le64(np->tx_ring_dma + in alloc_list()
507 skb = netdev_alloc_skb_ip_align(dev, np->rx_buf_sz); in alloc_list()
508 np->rx_skbuff[i] = skb; in alloc_list()
514 np->rx_ring[i].next_desc = cpu_to_le64(np->rx_ring_dma + in alloc_list()
518 np->rx_ring[i].fraginfo = in alloc_list()
520 np->pdev, skb->data, np->rx_buf_sz, in alloc_list()
522 np->rx_ring[i].fraginfo |= cpu_to_le64((u64)np->rx_buf_sz << 48); in alloc_list()
530 struct netdev_private *np = netdev_priv(dev); in rio_hw_init() local
531 void __iomem *ioaddr = np->ioaddr; in rio_hw_init()
545 if (np->chip_id == CHIP_IP1000A && in rio_hw_init()
546 (np->pdev->revision == 0x40 || np->pdev->revision == 0x41)) { in rio_hw_init()
548 mii_write(dev, np->phy_addr, 31, 0x0001); in rio_hw_init()
549 mii_write(dev, np->phy_addr, 27, 0x01e0); in rio_hw_init()
550 mii_write(dev, np->phy_addr, 31, 0x0002); in rio_hw_init()
551 mii_write(dev, np->phy_addr, 27, 0xeb8e); in rio_hw_init()
552 mii_write(dev, np->phy_addr, 31, 0x0000); in rio_hw_init()
553 mii_write(dev, np->phy_addr, 30, 0x005e); in rio_hw_init()
555 mii_write(dev, np->phy_addr, MII_CTRL1000, 0x0700); in rio_hw_init()
558 if (np->phy_media) in rio_hw_init()
564 if (np->jumbo != 0) in rio_hw_init()
568 dw32(RFDListPtr0, np->rx_ring_dma); in rio_hw_init()
580 if (np->coalesce) { in rio_hw_init()
581 dw32(RxDMAIntCtrl, np->rx_coalesce | np->rx_timeout << 16); in rio_hw_init()
593 if (np->vlan) { in rio_hw_init()
597 dw16(VLANId, np->vlan); in rio_hw_init()
599 dw32(VLANTag, 0x8100 << 16 | np->vlan); in rio_hw_init()
609 macctrl |= (np->vlan) ? AutoVLANuntagging : 0; in rio_hw_init()
610 macctrl |= (np->full_duplex) ? DuplexSelect : 0; in rio_hw_init()
611 macctrl |= (np->tx_flow) ? TxFlowControlEnable : 0; in rio_hw_init()
612 macctrl |= (np->rx_flow) ? RxFlowControlEnable : 0; in rio_hw_init()
618 struct netdev_private *np = netdev_priv(dev); in rio_hw_stop() local
619 void __iomem *ioaddr = np->ioaddr; in rio_hw_stop()
630 struct netdev_private *np = netdev_priv(dev); in rio_open() local
631 const int irq = np->pdev->irq; in rio_open()
647 timer_setup(&np->timer, rio_timer, 0); in rio_open()
648 np->timer.expires = jiffies + 1 * HZ; in rio_open()
649 add_timer(&np->timer); in rio_open()
653 dl2k_enable_int(np); in rio_open()
660 struct netdev_private *np = from_timer(np, t, timer); in rio_timer() local
661 struct net_device *dev = pci_get_drvdata(np->pdev); in rio_timer()
666 spin_lock_irqsave(&np->rx_lock, flags); in rio_timer()
668 if (np->cur_rx - np->old_rx >= RX_RING_SIZE) { in rio_timer()
671 for (; np->cur_rx - np->old_rx > 0; np->old_rx++) { in rio_timer()
673 entry = np->old_rx % RX_RING_SIZE; in rio_timer()
675 if (np->rx_skbuff[entry] == NULL) { in rio_timer()
677 np->rx_buf_sz); in rio_timer()
679 np->rx_ring[entry].fraginfo = 0; in rio_timer()
685 np->rx_skbuff[entry] = skb; in rio_timer()
686 np->rx_ring[entry].fraginfo = in rio_timer()
688 (np->pdev, skb->data, np->rx_buf_sz, in rio_timer()
691 np->rx_ring[entry].fraginfo |= in rio_timer()
692 cpu_to_le64((u64)np->rx_buf_sz << 48); in rio_timer()
693 np->rx_ring[entry].status = 0; in rio_timer()
696 spin_unlock_irqrestore (&np->rx_lock, flags); in rio_timer()
697 np->timer.expires = jiffies + next_tick; in rio_timer()
698 add_timer(&np->timer); in rio_timer()
704 struct netdev_private *np = netdev_priv(dev); in rio_tx_timeout() local
705 void __iomem *ioaddr = np->ioaddr; in rio_tx_timeout()
717 struct netdev_private *np = netdev_priv(dev); in start_xmit() local
718 void __iomem *ioaddr = np->ioaddr; in start_xmit()
723 if (np->link_status == 0) { /* Link Down */ in start_xmit()
727 entry = np->cur_tx % TX_RING_SIZE; in start_xmit()
728 np->tx_skbuff[entry] = skb; in start_xmit()
729 txdesc = &np->tx_ring[entry]; in start_xmit()
738 if (np->vlan) { in start_xmit()
740 ((u64)np->vlan << 32) | in start_xmit()
743 txdesc->fraginfo = cpu_to_le64 (pci_map_single (np->pdev, skb->data, in start_xmit()
750 if (entry % np->tx_coalesce == 0 || np->speed == 10) in start_xmit()
764 np->cur_tx = (np->cur_tx + 1) % TX_RING_SIZE; in start_xmit()
765 if ((np->cur_tx - np->old_tx + TX_RING_SIZE) % TX_RING_SIZE in start_xmit()
766 < TX_QUEUE_LEN - 1 && np->speed != 10) { in start_xmit()
774 dw32(TFDListPtr0, np->tx_ring_dma + in start_xmit()
786 struct netdev_private *np = netdev_priv(dev); in rio_interrupt() local
787 void __iomem *ioaddr = np->ioaddr; in rio_interrupt()
817 if (np->cur_tx != np->old_tx) in rio_interrupt()
825 struct netdev_private *np = netdev_priv(dev); in rio_free_tx() local
826 int entry = np->old_tx % TX_RING_SIZE; in rio_free_tx()
831 spin_lock(&np->tx_lock); in rio_free_tx()
833 spin_lock_irqsave(&np->tx_lock, flag); in rio_free_tx()
836 while (entry != np->cur_tx) { in rio_free_tx()
839 if (!(np->tx_ring[entry].status & cpu_to_le64(TFDDone))) in rio_free_tx()
841 skb = np->tx_skbuff[entry]; in rio_free_tx()
842 pci_unmap_single (np->pdev, in rio_free_tx()
843 desc_to_dma(&np->tx_ring[entry]), in rio_free_tx()
850 np->tx_skbuff[entry] = NULL; in rio_free_tx()
855 spin_unlock(&np->tx_lock); in rio_free_tx()
857 spin_unlock_irqrestore(&np->tx_lock, flag); in rio_free_tx()
858 np->old_tx = entry; in rio_free_tx()
864 ((np->cur_tx - np->old_tx + TX_RING_SIZE) % TX_RING_SIZE in rio_free_tx()
865 < TX_QUEUE_LEN - 1 || np->speed == 10)) { in rio_free_tx()
873 struct netdev_private *np = netdev_priv(dev); in tx_error() local
874 void __iomem *ioaddr = np->ioaddr; in tx_error()
898 dw32(TFDListPtr0, np->tx_ring_dma + in tx_error()
899 np->old_tx * sizeof (struct netdev_desc)); in tx_error()
928 struct netdev_private *np = netdev_priv(dev); in receive_packet() local
929 int entry = np->cur_rx % RX_RING_SIZE; in receive_packet()
934 struct netdev_desc *desc = &np->rx_ring[entry]; in receive_packet()
955 if (frame_status & RxAlignmentError && np->speed != 1000) in receive_packet()
964 pci_unmap_single (np->pdev, in receive_packet()
966 np->rx_buf_sz, in receive_packet()
968 skb_put (skb = np->rx_skbuff[entry], pkt_len); in receive_packet()
969 np->rx_skbuff[entry] = NULL; in receive_packet()
971 pci_dma_sync_single_for_cpu(np->pdev, in receive_packet()
973 np->rx_buf_sz, in receive_packet()
976 np->rx_skbuff[entry]->data, in receive_packet()
979 pci_dma_sync_single_for_device(np->pdev, in receive_packet()
981 np->rx_buf_sz, in receive_packet()
987 if (np->pdev->pci_rev_id >= 0x0c && in receive_packet()
996 spin_lock(&np->rx_lock); in receive_packet()
997 np->cur_rx = entry; in receive_packet()
999 entry = np->old_rx; in receive_packet()
1000 while (entry != np->cur_rx) { in receive_packet()
1003 if (np->rx_skbuff[entry] == NULL) { in receive_packet()
1004 skb = netdev_alloc_skb_ip_align(dev, np->rx_buf_sz); in receive_packet()
1006 np->rx_ring[entry].fraginfo = 0; in receive_packet()
1013 np->rx_skbuff[entry] = skb; in receive_packet()
1014 np->rx_ring[entry].fraginfo = in receive_packet()
1016 (np->pdev, skb->data, np->rx_buf_sz, in receive_packet()
1019 np->rx_ring[entry].fraginfo |= in receive_packet()
1020 cpu_to_le64((u64)np->rx_buf_sz << 48); in receive_packet()
1021 np->rx_ring[entry].status = 0; in receive_packet()
1024 np->old_rx = entry; in receive_packet()
1025 spin_unlock(&np->rx_lock); in receive_packet()
1032 struct netdev_private *np = netdev_priv(dev); in rio_error() local
1033 void __iomem *ioaddr = np->ioaddr; in rio_error()
1040 if (np->phy_media) in rio_error()
1044 if (np->speed == 1000) in rio_error()
1045 np->tx_coalesce = tx_coalesce; in rio_error()
1047 np->tx_coalesce = 1; in rio_error()
1049 macctrl |= (np->vlan) ? AutoVLANuntagging : 0; in rio_error()
1050 macctrl |= (np->full_duplex) ? DuplexSelect : 0; in rio_error()
1051 macctrl |= (np->tx_flow) ? in rio_error()
1053 macctrl |= (np->rx_flow) ? in rio_error()
1056 np->link_status = 1; in rio_error()
1060 np->link_status = 0; in rio_error()
1084 struct netdev_private *np = netdev_priv(dev); in get_stats() local
1085 void __iomem *ioaddr = np->ioaddr; in get_stats()
1146 struct netdev_private *np = netdev_priv(dev); in clear_stats() local
1147 void __iomem *ioaddr = np->ioaddr; in clear_stats()
1201 struct netdev_private *np = netdev_priv(dev); in set_multicast() local
1202 void __iomem *ioaddr = np->ioaddr; in set_multicast()
1235 if (np->vlan) { in set_multicast()
1247 struct netdev_private *np = netdev_priv(dev); in rio_get_drvinfo() local
1251 strlcpy(info->bus_info, pci_name(np->pdev), sizeof(info->bus_info)); in rio_get_drvinfo()
1257 struct netdev_private *np = netdev_priv(dev); in rio_get_link_ksettings() local
1260 if (np->phy_media) { in rio_get_link_ksettings()
1277 if (np->link_status) { in rio_get_link_ksettings()
1278 cmd->base.speed = np->speed; in rio_get_link_ksettings()
1279 cmd->base.duplex = np->full_duplex ? DUPLEX_FULL : DUPLEX_HALF; in rio_get_link_ksettings()
1284 if (np->an_enable) in rio_get_link_ksettings()
1289 cmd->base.phy_address = np->phy_addr; in rio_get_link_ksettings()
1302 struct netdev_private *np = netdev_priv(dev); in rio_set_link_ksettings() local
1308 if (np->an_enable) { in rio_set_link_ksettings()
1311 np->an_enable = 1; in rio_set_link_ksettings()
1316 np->an_enable = 0; in rio_set_link_ksettings()
1317 if (np->speed == 1000) { in rio_set_link_ksettings()
1324 np->speed = 10; in rio_set_link_ksettings()
1325 np->full_duplex = (duplex == DUPLEX_FULL); in rio_set_link_ksettings()
1328 np->speed = 100; in rio_set_link_ksettings()
1329 np->full_duplex = (duplex == DUPLEX_FULL); in rio_set_link_ksettings()
1342 struct netdev_private *np = netdev_priv(dev); in rio_get_link() local
1343 return np->link_status; in rio_get_link()
1357 struct netdev_private *np = netdev_priv(dev); in rio_ioctl() local
1360 phy_addr = np->phy_addr; in rio_ioctl()
1383 static int read_eeprom(struct netdev_private *np, int eep_addr) in read_eeprom() argument
1385 void __iomem *ioaddr = np->eeprom_addr; in read_eeprom()
1405 struct netdev_private *np = netdev_priv(dev); in mii_sendbit() local
1406 void __iomem *ioaddr = np->ioaddr; in mii_sendbit()
1418 struct netdev_private *np = netdev_priv(dev); in mii_getbit() local
1419 void __iomem *ioaddr = np->ioaddr; in mii_getbit()
1488 struct netdev_private *np; in mii_wait_link() local
1490 np = netdev_priv(dev); in mii_wait_link()
1491 phy_addr = np->phy_addr; in mii_wait_link()
1509 struct netdev_private *np; in mii_get_media() local
1511 np = netdev_priv(dev); in mii_get_media()
1512 phy_addr = np->phy_addr; in mii_get_media()
1515 if (np->an_enable) { in mii_get_media()
1525 np->speed = 1000; in mii_get_media()
1526 np->full_duplex = 1; in mii_get_media()
1529 np->speed = 1000; in mii_get_media()
1530 np->full_duplex = 0; in mii_get_media()
1533 np->speed = 100; in mii_get_media()
1534 np->full_duplex = 1; in mii_get_media()
1537 np->speed = 100; in mii_get_media()
1538 np->full_duplex = 0; in mii_get_media()
1541 np->speed = 10; in mii_get_media()
1542 np->full_duplex = 1; in mii_get_media()
1545 np->speed = 10; in mii_get_media()
1546 np->full_duplex = 0; in mii_get_media()
1550 np->tx_flow &= 1; in mii_get_media()
1551 np->rx_flow &= 1; in mii_get_media()
1553 np->tx_flow = 0; in mii_get_media()
1554 np->rx_flow &= 1; in mii_get_media()
1575 if (np->tx_flow) in mii_get_media()
1579 if (np->rx_flow) in mii_get_media()
1595 struct netdev_private *np; in mii_set_media() local
1596 np = netdev_priv(dev); in mii_set_media()
1597 phy_addr = np->phy_addr; in mii_set_media()
1600 if (np->an_enable) { in mii_set_media()
1652 if (np->speed == 100) { in mii_set_media()
1655 } else if (np->speed == 10) { in mii_set_media()
1658 if (np->full_duplex) { in mii_set_media()
1682 struct netdev_private *np; in mii_get_media_pcs() local
1684 np = netdev_priv(dev); in mii_get_media_pcs()
1685 phy_addr = np->phy_addr; in mii_get_media_pcs()
1688 if (np->an_enable) { in mii_get_media_pcs()
1695 np->speed = 1000; in mii_get_media_pcs()
1698 np->full_duplex = 1; in mii_get_media_pcs()
1701 np->full_duplex = 0; in mii_get_media_pcs()
1704 np->tx_flow &= 1; in mii_get_media_pcs()
1705 np->rx_flow &= 1; in mii_get_media_pcs()
1707 np->tx_flow = 0; in mii_get_media_pcs()
1708 np->rx_flow &= 1; in mii_get_media_pcs()
1720 if (np->tx_flow) in mii_get_media_pcs()
1724 if (np->rx_flow) in mii_get_media_pcs()
1739 struct netdev_private *np; in mii_set_media_pcs() local
1740 np = netdev_priv(dev); in mii_set_media_pcs()
1741 phy_addr = np->phy_addr; in mii_set_media_pcs()
1744 if (np->an_enable) { in mii_set_media_pcs()
1768 if (np->full_duplex) { in mii_set_media_pcs()
1788 struct netdev_private *np = netdev_priv(dev); in rio_close() local
1789 struct pci_dev *pdev = np->pdev; in rio_close()
1796 del_timer_sync (&np->timer); in rio_close()
1809 struct netdev_private *np = netdev_priv(dev); in rio_remove1() local
1812 pci_free_consistent (pdev, RX_TOTAL_SIZE, np->rx_ring, in rio_remove1()
1813 np->rx_ring_dma); in rio_remove1()
1814 pci_free_consistent (pdev, TX_TOTAL_SIZE, np->tx_ring, in rio_remove1()
1815 np->tx_ring_dma); in rio_remove1()
1817 pci_iounmap(pdev, np->ioaddr); in rio_remove1()
1819 pci_iounmap(pdev, np->eeprom_addr); in rio_remove1()
1830 struct netdev_private *np = netdev_priv(dev); in rio_suspend() local
1836 del_timer_sync(&np->timer); in rio_suspend()
1845 struct netdev_private *np = netdev_priv(dev); in rio_resume() local
1850 rio_reset_ring(np); in rio_resume()
1852 np->timer.expires = jiffies + 1 * HZ; in rio_resume()
1853 add_timer(&np->timer); in rio_resume()
1855 dl2k_enable_int(np); in rio_resume()