Lines Matching full:np

584 	struct netdev_private *np = netdev_priv(dev);  in netdev_vlan_rx_add_vid()  local
586 spin_lock(&np->lock); in netdev_vlan_rx_add_vid()
589 set_bit(vid, np->active_vlans); in netdev_vlan_rx_add_vid()
591 spin_unlock(&np->lock); in netdev_vlan_rx_add_vid()
599 struct netdev_private *np = netdev_priv(dev); in netdev_vlan_rx_kill_vid() local
601 spin_lock(&np->lock); in netdev_vlan_rx_kill_vid()
604 clear_bit(vid, np->active_vlans); in netdev_vlan_rx_kill_vid()
606 spin_unlock(&np->lock); in netdev_vlan_rx_kill_vid()
633 struct netdev_private *np; in starfire_init_one() local
652 dev = alloc_etherdev(sizeof(*np)); in starfire_init_one()
721 np = netdev_priv(dev); in starfire_init_one()
722 np->dev = dev; in starfire_init_one()
723 np->base = base; in starfire_init_one()
724 spin_lock_init(&np->lock); in starfire_init_one()
727 np->pci_dev = pdev; in starfire_init_one()
729 np->mii_if.dev = dev; in starfire_init_one()
730 np->mii_if.mdio_read = mdio_read; in starfire_init_one()
731 np->mii_if.mdio_write = mdio_write; in starfire_init_one()
732 np->mii_if.phy_id_mask = 0x1f; in starfire_init_one()
733 np->mii_if.reg_num_mask = 0x1f; in starfire_init_one()
737 np->speed100 = 1; in starfire_init_one()
740 np->intr_timer_ctrl = (((intr_latency * 10) / 1024) & IntrLatencyMask) | in starfire_init_one()
744 np->intr_timer_ctrl |= SmallFrameBypass; in starfire_init_one()
747 np->intr_timer_ctrl |= SmallFrame64; in starfire_init_one()
750 np->intr_timer_ctrl |= SmallFrame128; in starfire_init_one()
753 np->intr_timer_ctrl |= SmallFrame256; in starfire_init_one()
756 np->intr_timer_ctrl |= SmallFrame512; in starfire_init_one()
767 netif_napi_add_weight(dev, &np->napi, netdev_poll, max_interrupt_work); in starfire_init_one()
795 np->phys[phy_idx++] = phy; in starfire_init_one()
796 np->mii_if.advertising = mdio_read(dev, phy, MII_ADVERTISE); in starfire_init_one()
799 dev->name, phy, mii_status, np->mii_if.advertising); in starfire_init_one()
804 np->phy_cnt = phy_idx; in starfire_init_one()
805 if (np->phy_cnt > 0) in starfire_init_one()
806 np->mii_if.phy_id = np->phys[0]; in starfire_init_one()
808 memset(&np->mii_if, 0, sizeof(np->mii_if)); in starfire_init_one()
828 struct netdev_private *np = netdev_priv(dev); in mdio_read() local
829 void __iomem *mdio_addr = np->base + MIICtrl + (phy_id<<7) + (location<<2); in mdio_read()
845 struct netdev_private *np = netdev_priv(dev); in mdio_write() local
846 void __iomem *mdio_addr = np->base + MIICtrl + (phy_id<<7) + (location<<2); in mdio_write()
856 struct netdev_private *np = netdev_priv(dev); in netdev_open() local
857 void __iomem *ioaddr = np->base; in netdev_open()
858 const int irq = np->pci_dev->irq; in netdev_open()
877 if (!np->queue_mem) { in netdev_open()
882 np->queue_mem_size = tx_done_q_size + rx_done_q_size + tx_ring_size + rx_ring_size; in netdev_open()
883 np->queue_mem = dma_alloc_coherent(&np->pci_dev->dev, in netdev_open()
884 np->queue_mem_size, in netdev_open()
885 &np->queue_mem_dma, GFP_ATOMIC); in netdev_open()
886 if (np->queue_mem == NULL) { in netdev_open()
891 np->tx_done_q = np->queue_mem; in netdev_open()
892 np->tx_done_q_dma = np->queue_mem_dma; in netdev_open()
893 np->rx_done_q = (void *) np->tx_done_q + tx_done_q_size; in netdev_open()
894 np->rx_done_q_dma = np->tx_done_q_dma + tx_done_q_size; in netdev_open()
895 np->tx_ring = (void *) np->rx_done_q + rx_done_q_size; in netdev_open()
896 np->tx_ring_dma = np->rx_done_q_dma + rx_done_q_size; in netdev_open()
897 np->rx_ring = (void *) np->tx_ring + tx_ring_size; in netdev_open()
898 np->rx_ring_dma = np->tx_ring_dma + tx_ring_size; in netdev_open()
905 writel((np->rx_buf_sz << RxBufferLenShift) | in netdev_open()
928 writel( (np->queue_mem_dma >> 16) >> 16, ioaddr + RxDescQHiAddr); in netdev_open()
929 writel( (np->queue_mem_dma >> 16) >> 16, ioaddr + TxRingHiAddr); in netdev_open()
930 writel( (np->queue_mem_dma >> 16) >> 16, ioaddr + CompletionHiAddr); in netdev_open()
931 writel(np->rx_ring_dma, ioaddr + RxDescQAddr); in netdev_open()
932 writel(np->tx_ring_dma, ioaddr + TxRingPtr); in netdev_open()
934 writel(np->tx_done_q_dma, ioaddr + TxCompletionAddr); in netdev_open()
935 writel(np->rx_done_q_dma | in netdev_open()
961 np->tx_mode = TxFlowEnable|RxFlowEnable|PadEnable; /* modified when link is up. */ in netdev_open()
962 writel(MiiSoftReset | np->tx_mode, ioaddr + TxMode); in netdev_open()
964 writel(np->tx_mode, ioaddr + TxMode); in netdev_open()
965 np->tx_threshold = 4; in netdev_open()
966 writel(np->tx_threshold, ioaddr + TxThreshold); in netdev_open()
968 writel(np->intr_timer_ctrl, ioaddr + IntrTimerCtrl); in netdev_open()
970 napi_enable(&np->napi); in netdev_open()
978 np->mii_if.advertising = mdio_read(dev, np->phys[0], MII_ADVERTISE); in netdev_open()
998 retval = request_firmware(&fw_rx, FIRMWARE_RX, &np->pci_dev->dev); in netdev_open()
1010 retval = request_firmware(&fw_tx, FIRMWARE_TX, &np->pci_dev->dev); in netdev_open()
1056 struct netdev_private *np = netdev_priv(dev); in check_duplex() local
1060 mdio_write(dev, np->phys[0], MII_ADVERTISE, np->mii_if.advertising); in check_duplex()
1061 mdio_write(dev, np->phys[0], MII_BMCR, BMCR_RESET); in check_duplex()
1063 while (--silly_count && mdio_read(dev, np->phys[0], MII_BMCR) & BMCR_RESET) in check_duplex()
1070 reg0 = mdio_read(dev, np->phys[0], MII_BMCR); in check_duplex()
1072 if (!np->mii_if.force_media) { in check_duplex()
1076 if (np->speed100) in check_duplex()
1078 if (np->mii_if.full_duplex) in check_duplex()
1082 np->speed100 ? "100" : "10", in check_duplex()
1083 np->mii_if.full_duplex ? "full" : "half"); in check_duplex()
1085 mdio_write(dev, np->phys[0], MII_BMCR, reg0); in check_duplex()
1091 struct netdev_private *np = netdev_priv(dev); in tx_timeout() local
1092 void __iomem *ioaddr = np->base; in tx_timeout()
1121 struct netdev_private *np = netdev_priv(dev); in init_ring() local
1124 np->cur_rx = np->cur_tx = np->reap_tx = 0; in init_ring()
1125 np->dirty_rx = np->dirty_tx = np->rx_done = np->tx_done = 0; in init_ring()
1127 np->rx_buf_sz = (dev->mtu <= 1500 ? PKT_BUF_SZ : dev->mtu + 32); in init_ring()
1131 struct sk_buff *skb = netdev_alloc_skb(dev, np->rx_buf_sz); in init_ring()
1132 np->rx_info[i].skb = skb; in init_ring()
1135 np->rx_info[i].mapping = dma_map_single(&np->pci_dev->dev, in init_ring()
1137 np->rx_buf_sz, in init_ring()
1139 if (dma_mapping_error(&np->pci_dev->dev, np->rx_info[i].mapping)) { in init_ring()
1141 np->rx_info[i].skb = NULL; in init_ring()
1145 np->rx_ring[i].rxaddr = cpu_to_dma(np->rx_info[i].mapping | RxDescValid); in init_ring()
1147 writew(i - 1, np->base + RxDescQIdx); in init_ring()
1148 np->dirty_rx = (unsigned int)(i - RX_RING_SIZE); in init_ring()
1152 np->rx_ring[i].rxaddr = 0; in init_ring()
1153 np->rx_info[i].skb = NULL; in init_ring()
1154 np->rx_info[i].mapping = 0; in init_ring()
1157 np->rx_ring[RX_RING_SIZE - 1].rxaddr |= cpu_to_dma(RxDescEndRing); in init_ring()
1161 np->rx_done_q[i].status = 0; in init_ring()
1162 np->tx_done_q[i].status = 0; in init_ring()
1166 memset(&np->tx_info[i], 0, sizeof(np->tx_info[i])); in init_ring()
1172 struct netdev_private *np = netdev_priv(dev); in start_tx() local
1182 if ((np->cur_tx - np->dirty_tx) + skb_num_frags(skb) * 2 > TX_RING_SIZE) { in start_tx()
1194 prev_tx = np->cur_tx; in start_tx()
1195 entry = np->cur_tx % TX_RING_SIZE; in start_tx()
1201 np->tx_info[entry].skb = skb; in start_tx()
1207 if (np->reap_tx) { in start_tx()
1209 np->reap_tx = 0; in start_tx()
1217 np->tx_info[entry].mapping = in start_tx()
1218 dma_map_single(&np->pci_dev->dev, skb->data, in start_tx()
1224 np->tx_info[entry].mapping = in start_tx()
1225 dma_map_single(&np->pci_dev->dev, in start_tx()
1230 if (dma_mapping_error(&np->pci_dev->dev, np->tx_info[entry].mapping)) { in start_tx()
1235 np->tx_ring[entry].addr = cpu_to_dma(np->tx_info[entry].mapping); in start_tx()
1236 np->tx_ring[entry].status = cpu_to_le32(status); in start_tx()
1239 dev->name, np->cur_tx, np->dirty_tx, in start_tx()
1242 np->tx_info[entry].used_slots = TX_RING_SIZE - entry; in start_tx()
1243 np->cur_tx += np->tx_info[entry].used_slots; in start_tx()
1246 np->tx_info[entry].used_slots = 1; in start_tx()
1247 np->cur_tx += np->tx_info[entry].used_slots; in start_tx()
1251 if (np->cur_tx % (TX_RING_SIZE / 2) == 0) in start_tx()
1252 np->reap_tx = 1; in start_tx()
1261 writel(entry * (sizeof(starfire_tx_desc) / 8), np->base + TxProducerIdx); in start_tx()
1264 if ((np->cur_tx - np->dirty_tx) + 4 > TX_RING_SIZE) in start_tx()
1271 np->tx_info[entry].skb = NULL; in start_tx()
1273 dma_unmap_single(&np->pci_dev->dev, in start_tx()
1274 np->tx_info[entry].mapping, in start_tx()
1276 np->tx_info[entry].mapping = 0; in start_tx()
1277 entry = (entry + np->tx_info[entry].used_slots) % TX_RING_SIZE; in start_tx()
1279 dma_unmap_single(&np->pci_dev->dev, in start_tx()
1280 np->tx_info[entry].mapping, in start_tx()
1287 np->cur_tx = prev_tx; in start_tx()
1296 struct netdev_private *np = netdev_priv(dev); in intr_handler() local
1297 void __iomem *ioaddr = np->base; in intr_handler()
1318 if (likely(napi_schedule_prep(&np->napi))) { in intr_handler()
1319 __napi_schedule(&np->napi); in intr_handler()
1346 while ((tx_status = le32_to_cpu(np->tx_done_q[np->tx_done].status)) != 0) { in intr_handler()
1349 dev->name, np->dirty_tx, np->tx_done, tx_status); in intr_handler()
1354 struct sk_buff *skb = np->tx_info[entry].skb; in intr_handler()
1355 np->tx_info[entry].skb = NULL; in intr_handler()
1356 dma_unmap_single(&np->pci_dev->dev, in intr_handler()
1357 np->tx_info[entry].mapping, in intr_handler()
1360 np->tx_info[entry].mapping = 0; in intr_handler()
1361 np->dirty_tx += np->tx_info[entry].used_slots; in intr_handler()
1362 entry = (entry + np->tx_info[entry].used_slots) % TX_RING_SIZE; in intr_handler()
1366 dma_unmap_single(&np->pci_dev->dev, in intr_handler()
1367 np->tx_info[entry].mapping, in intr_handler()
1370 np->dirty_tx++; in intr_handler()
1377 np->tx_done_q[np->tx_done].status = 0; in intr_handler()
1378 np->tx_done = (np->tx_done + 1) % DONE_Q_SIZE; in intr_handler()
1380 writew(np->tx_done, ioaddr + CompletionQConsumerIdx + 2); in intr_handler()
1383 (np->cur_tx - np->dirty_tx + 4 < TX_RING_SIZE)) { in intr_handler()
1422 struct netdev_private *np = netdev_priv(dev); in __netdev_rx() local
1427 while ((desc_status = le32_to_cpu(np->rx_done_q[np->rx_done].status)) != 0) { in __netdev_rx()
1431 rx_done_desc *desc = &np->rx_done_q[np->rx_done]; in __netdev_rx()
1434 printk(KERN_DEBUG " netdev_rx() status of %d was %#8.8x.\n", np->rx_done, desc_status); in __netdev_rx()
1461 dma_sync_single_for_cpu(&np->pci_dev->dev, in __netdev_rx()
1462 np->rx_info[entry].mapping, in __netdev_rx()
1464 skb_copy_to_linear_data(skb, np->rx_info[entry].skb->data, pkt_len); in __netdev_rx()
1465 dma_sync_single_for_device(&np->pci_dev->dev, in __netdev_rx()
1466 np->rx_info[entry].mapping, in __netdev_rx()
1470 dma_unmap_single(&np->pci_dev->dev, in __netdev_rx()
1471 np->rx_info[entry].mapping, in __netdev_rx()
1472 np->rx_buf_sz, DMA_FROM_DEVICE); in __netdev_rx()
1473 skb = np->rx_info[entry].skb; in __netdev_rx()
1475 np->rx_info[entry].skb = NULL; in __netdev_rx()
1476 np->rx_info[entry].mapping = 0; in __netdev_rx()
1490 …printk(KERN_DEBUG " netdev_rx() status2 of %d was %#4.4x.\n", np->rx_done, le16_to_cpu(desc->stat… in __netdev_rx()
1525 np->cur_rx++; in __netdev_rx()
1527 np->rx_done = (np->rx_done + 1) % DONE_Q_SIZE; in __netdev_rx()
1534 writew(np->rx_done, np->base + CompletionQConsumerIdx); in __netdev_rx()
1540 retcode, np->rx_done, desc_status); in __netdev_rx()
1546 struct netdev_private *np = container_of(napi, struct netdev_private, napi); in netdev_poll() local
1547 struct net_device *dev = np->dev; in netdev_poll()
1549 void __iomem *ioaddr = np->base; in netdev_poll()
1577 struct netdev_private *np = netdev_priv(dev); in refill_rx_ring() local
1582 for (; np->cur_rx - np->dirty_rx > 0; np->dirty_rx++) { in refill_rx_ring()
1583 entry = np->dirty_rx % RX_RING_SIZE; in refill_rx_ring()
1584 if (np->rx_info[entry].skb == NULL) { in refill_rx_ring()
1585 skb = netdev_alloc_skb(dev, np->rx_buf_sz); in refill_rx_ring()
1586 np->rx_info[entry].skb = skb; in refill_rx_ring()
1589 np->rx_info[entry].mapping = in refill_rx_ring()
1590 dma_map_single(&np->pci_dev->dev, skb->data, in refill_rx_ring()
1591 np->rx_buf_sz, DMA_FROM_DEVICE); in refill_rx_ring()
1592 if (dma_mapping_error(&np->pci_dev->dev, np->rx_info[entry].mapping)) { in refill_rx_ring()
1594 np->rx_info[entry].skb = NULL; in refill_rx_ring()
1597 np->rx_ring[entry].rxaddr = in refill_rx_ring()
1598 cpu_to_dma(np->rx_info[entry].mapping | RxDescValid); in refill_rx_ring()
1601 np->rx_ring[entry].rxaddr |= cpu_to_dma(RxDescEndRing); in refill_rx_ring()
1604 writew(entry, np->base + RxDescQIdx); in refill_rx_ring()
1610 struct netdev_private *np = netdev_priv(dev); in netdev_media_change() local
1611 void __iomem *ioaddr = np->base; in netdev_media_change()
1617 mdio_read(dev, np->phys[0], MII_BMCR); in netdev_media_change()
1618 mdio_read(dev, np->phys[0], MII_BMSR); in netdev_media_change()
1620 reg0 = mdio_read(dev, np->phys[0], MII_BMCR); in netdev_media_change()
1621 reg1 = mdio_read(dev, np->phys[0], MII_BMSR); in netdev_media_change()
1627 reg4 = mdio_read(dev, np->phys[0], MII_ADVERTISE); in netdev_media_change()
1628 reg5 = mdio_read(dev, np->phys[0], MII_LPA); in netdev_media_change()
1630 np->speed100 = 1; in netdev_media_change()
1631 np->mii_if.full_duplex = 1; in netdev_media_change()
1633 np->speed100 = 1; in netdev_media_change()
1634 np->mii_if.full_duplex = 0; in netdev_media_change()
1636 np->speed100 = 0; in netdev_media_change()
1637 np->mii_if.full_duplex = 1; in netdev_media_change()
1639 np->speed100 = 0; in netdev_media_change()
1640 np->mii_if.full_duplex = 0; in netdev_media_change()
1645 np->speed100 = 1; in netdev_media_change()
1647 np->speed100 = 0; in netdev_media_change()
1649 np->mii_if.full_duplex = 1; in netdev_media_change()
1651 np->mii_if.full_duplex = 0; in netdev_media_change()
1656 np->speed100 ? "100" : "10", in netdev_media_change()
1657 np->mii_if.full_duplex ? "full" : "half"); in netdev_media_change()
1659 new_tx_mode = np->tx_mode & ~FullDuplex; /* duplex setting */ in netdev_media_change()
1660 if (np->mii_if.full_duplex) in netdev_media_change()
1662 if (np->tx_mode != new_tx_mode) { in netdev_media_change()
1663 np->tx_mode = new_tx_mode; in netdev_media_change()
1664 writel(np->tx_mode | MiiSoftReset, ioaddr + TxMode); in netdev_media_change()
1666 writel(np->tx_mode, ioaddr + TxMode); in netdev_media_change()
1669 new_intr_timer_ctrl = np->intr_timer_ctrl & ~Timer10X; in netdev_media_change()
1670 if (np->speed100) in netdev_media_change()
1672 if (np->intr_timer_ctrl != new_intr_timer_ctrl) { in netdev_media_change()
1673 np->intr_timer_ctrl = new_intr_timer_ctrl; in netdev_media_change()
1685 struct netdev_private *np = netdev_priv(dev); in netdev_error() local
1689 if (np->tx_threshold <= PKT_BUF_SZ / 16) { in netdev_error()
1690 writel(++np->tx_threshold, np->base + TxThreshold); in netdev_error()
1692 dev->name, np->tx_threshold * 16); in netdev_error()
1712 struct netdev_private *np = netdev_priv(dev); in get_stats() local
1713 void __iomem *ioaddr = np->base; in get_stats()
1737 static u32 set_vlan_mode(struct netdev_private *np) in set_vlan_mode() argument
1741 void __iomem *filter_addr = np->base + HashTable + 8; in set_vlan_mode()
1744 for_each_set_bit(vid, np->active_vlans, VLAN_N_VID) { in set_vlan_mode()
1765 struct netdev_private *np = netdev_priv(dev); in set_rx_mode() local
1766 void __iomem *ioaddr = np->base; in set_rx_mode()
1772 rx_mode |= set_vlan_mode(np); in set_rx_mode()
1838 struct netdev_private *np = netdev_priv(dev); in get_drvinfo() local
1840 strscpy(info->bus_info, pci_name(np->pci_dev), sizeof(info->bus_info)); in get_drvinfo()
1846 struct netdev_private *np = netdev_priv(dev); in get_link_ksettings() local
1847 spin_lock_irq(&np->lock); in get_link_ksettings()
1848 mii_ethtool_get_link_ksettings(&np->mii_if, cmd); in get_link_ksettings()
1849 spin_unlock_irq(&np->lock); in get_link_ksettings()
1856 struct netdev_private *np = netdev_priv(dev); in set_link_ksettings() local
1858 spin_lock_irq(&np->lock); in set_link_ksettings()
1859 res = mii_ethtool_set_link_ksettings(&np->mii_if, cmd); in set_link_ksettings()
1860 spin_unlock_irq(&np->lock); in set_link_ksettings()
1867 struct netdev_private *np = netdev_priv(dev); in nway_reset() local
1868 return mii_nway_restart(&np->mii_if); in nway_reset()
1873 struct netdev_private *np = netdev_priv(dev); in get_link() local
1874 return mii_link_ok(&np->mii_if); in get_link()
1900 struct netdev_private *np = netdev_priv(dev); in netdev_ioctl() local
1907 spin_lock_irq(&np->lock); in netdev_ioctl()
1908 rc = generic_mii_ioctl(&np->mii_if, data, cmd, NULL); in netdev_ioctl()
1909 spin_unlock_irq(&np->lock); in netdev_ioctl()
1911 if ((cmd == SIOCSMIIREG) && (data->phy_id == np->phys[0])) in netdev_ioctl()
1919 struct netdev_private *np = netdev_priv(dev); in netdev_close() local
1920 void __iomem *ioaddr = np->base; in netdev_close()
1925 napi_disable(&np->napi); in netdev_close()
1931 dev->name, np->cur_tx, np->dirty_tx, in netdev_close()
1932 np->cur_rx, np->dirty_rx); in netdev_close()
1944 (long long) np->tx_ring_dma); in netdev_close()
1947 i, le32_to_cpu(np->tx_ring[i].status), in netdev_close()
1948 (long long) dma_to_cpu(np->tx_ring[i].addr), in netdev_close()
1949 le32_to_cpu(np->tx_done_q[i].status)); in netdev_close()
1951 (long long) np->rx_ring_dma, np->rx_done_q); in netdev_close()
1952 if (np->rx_done_q) in netdev_close()
1955 i, (long long) dma_to_cpu(np->rx_ring[i].rxaddr), le32_to_cpu(np->rx_done_q[i].status)); in netdev_close()
1959 free_irq(np->pci_dev->irq, dev); in netdev_close()
1963 np->rx_ring[i].rxaddr = cpu_to_dma(0xBADF00D0); /* An invalid address. */ in netdev_close()
1964 if (np->rx_info[i].skb != NULL) { in netdev_close()
1965 dma_unmap_single(&np->pci_dev->dev, in netdev_close()
1966 np->rx_info[i].mapping, in netdev_close()
1967 np->rx_buf_sz, DMA_FROM_DEVICE); in netdev_close()
1968 dev_kfree_skb(np->rx_info[i].skb); in netdev_close()
1970 np->rx_info[i].skb = NULL; in netdev_close()
1971 np->rx_info[i].mapping = 0; in netdev_close()
1974 struct sk_buff *skb = np->tx_info[i].skb; in netdev_close()
1977 dma_unmap_single(&np->pci_dev->dev, np->tx_info[i].mapping, in netdev_close()
1979 np->tx_info[i].mapping = 0; in netdev_close()
1981 np->tx_info[i].skb = NULL; in netdev_close()
2014 struct netdev_private *np = netdev_priv(dev); in starfire_remove_one() local
2020 if (np->queue_mem) in starfire_remove_one()
2021 dma_free_coherent(&pdev->dev, np->queue_mem_size, in starfire_remove_one()
2022 np->queue_mem, np->queue_mem_dma); in starfire_remove_one()
2029 iounmap(np->base); in starfire_remove_one()
2032 free_netdev(dev); /* Will also free np!! */ in starfire_remove_one()