Lines Matching defs:adapter

76  * @adapter: board private structure
83 static void igbvf_receive_skb(struct igbvf_adapter *adapter,
91 if ((adapter->flags & IGBVF_FLAG_RX_LB_VLAN_BSWAP) &&
96 if (test_bit(vid, adapter->active_vlans))
100 napi_gro_receive(&adapter->rx_ring->napi, skb);
103 static inline void igbvf_rx_checksum_adv(struct igbvf_adapter *adapter,
110 (adapter->flags & IGBVF_FLAG_RX_CSUM_DISABLED))
117 adapter->hw_csum_err++;
125 adapter->hw_csum_good++;
136 struct igbvf_adapter *adapter = rx_ring->adapter;
137 struct net_device *netdev = adapter->netdev;
138 struct pci_dev *pdev = adapter->pdev;
148 if (adapter->rx_ps_hdr_size)
149 bufsz = adapter->rx_ps_hdr_size;
151 bufsz = adapter->rx_buffer_len;
156 if (adapter->rx_ps_hdr_size && !buffer_info->page_dma) {
160 adapter->alloc_rx_buff_failed++;
184 adapter->alloc_rx_buff_failed++;
202 if (adapter->rx_ps_hdr_size) {
231 writel(i, adapter->hw.hw_addr + rx_ring->tail);
237 * @adapter: board private structure
244 static bool igbvf_clean_rx_irq(struct igbvf_adapter *adapter,
247 struct igbvf_ring *rx_ring = adapter->rx_ring;
248 struct net_device *netdev = adapter->netdev;
249 struct pci_dev *pdev = adapter->pdev;
279 if (hlen > adapter->rx_ps_hdr_size)
280 hlen = adapter->rx_ps_hdr_size;
289 if (!adapter->rx_ps_hdr_size) {
291 adapter->rx_buffer_len,
300 adapter->rx_ps_hdr_size,
317 if ((adapter->rx_buffer_len > (PAGE_SIZE / 2)) ||
351 igbvf_rx_checksum_adv(adapter, staterr, skb);
355 igbvf_receive_skb(adapter, netdev, skb, staterr,
380 adapter->total_rx_packets += total_packets;
381 adapter->total_rx_bytes += total_bytes;
387 static void igbvf_put_txbuf(struct igbvf_adapter *adapter,
392 dma_unmap_page(&adapter->pdev->dev,
397 dma_unmap_single(&adapter->pdev->dev,
412 * @adapter: board private structure
417 int igbvf_setup_tx_resources(struct igbvf_adapter *adapter,
420 struct pci_dev *pdev = adapter->pdev;
437 tx_ring->adapter = adapter;
444 dev_err(&adapter->pdev->dev,
451 * @adapter: board private structure
456 int igbvf_setup_rx_resources(struct igbvf_adapter *adapter,
459 struct pci_dev *pdev = adapter->pdev;
481 rx_ring->adapter = adapter;
488 dev_err(&adapter->pdev->dev,
499 struct igbvf_adapter *adapter = tx_ring->adapter;
510 igbvf_put_txbuf(adapter, buffer_info);
522 writel(0, adapter->hw.hw_addr + tx_ring->head);
523 writel(0, adapter->hw.hw_addr + tx_ring->tail);
534 struct pci_dev *pdev = tx_ring->adapter->pdev;
553 struct igbvf_adapter *adapter = rx_ring->adapter;
555 struct pci_dev *pdev = adapter->pdev;
566 if (adapter->rx_ps_hdr_size) {
568 adapter->rx_ps_hdr_size,
572 adapter->rx_buffer_len,
605 writel(0, adapter->hw.hw_addr + rx_ring->head);
606 writel(0, adapter->hw.hw_addr + rx_ring->tail);
618 struct pci_dev *pdev = rx_ring->adapter->pdev;
632 * @adapter: pointer to adapter
633 * @itr_setting: current adapter->itr
644 static enum latency_range igbvf_update_itr(struct igbvf_adapter *adapter,
714 static void igbvf_set_itr(struct igbvf_adapter *adapter)
718 adapter->tx_ring->itr_range =
719 igbvf_update_itr(adapter,
720 adapter->tx_ring->itr_val,
721 adapter->total_tx_packets,
722 adapter->total_tx_bytes);
725 if (adapter->requested_itr == 3 &&
726 adapter->tx_ring->itr_range == lowest_latency)
727 adapter->tx_ring->itr_range = low_latency;
729 new_itr = igbvf_range_to_itr(adapter->tx_ring->itr_range);
731 if (new_itr != adapter->tx_ring->itr_val) {
732 u32 current_itr = adapter->tx_ring->itr_val;
740 adapter->tx_ring->itr_val = new_itr;
742 adapter->tx_ring->set_itr = 1;
745 adapter->rx_ring->itr_range =
746 igbvf_update_itr(adapter, adapter->rx_ring->itr_val,
747 adapter->total_rx_packets,
748 adapter->total_rx_bytes);
749 if (adapter->requested_itr == 3 &&
750 adapter->rx_ring->itr_range == lowest_latency)
751 adapter->rx_ring->itr_range = low_latency;
753 new_itr = igbvf_range_to_itr(adapter->rx_ring->itr_range);
755 if (new_itr != adapter->rx_ring->itr_val) {
756 u32 current_itr = adapter->rx_ring->itr_val;
761 adapter->rx_ring->itr_val = new_itr;
763 adapter->rx_ring->set_itr = 1;
775 struct igbvf_adapter *adapter = tx_ring->adapter;
776 struct net_device *netdev = adapter->netdev;
820 igbvf_put_txbuf(adapter, buffer_info);
842 !(test_bit(__IGBVF_DOWN, &adapter->state))) {
844 ++adapter->restart_queue;
856 struct igbvf_adapter *adapter = netdev_priv(netdev);
857 struct e1000_hw *hw = &adapter->hw;
859 adapter->int_counter1++;
862 if (!test_bit(__IGBVF_DOWN, &adapter->state))
863 mod_timer(&adapter->watchdog_timer, jiffies + 1);
865 ew32(EIMS, adapter->eims_other);
873 struct igbvf_adapter *adapter = netdev_priv(netdev);
874 struct e1000_hw *hw = &adapter->hw;
875 struct igbvf_ring *tx_ring = adapter->tx_ring;
879 adapter->hw.hw_addr + tx_ring->itr_register);
880 adapter->tx_ring->set_itr = 0;
883 adapter->total_tx_bytes = 0;
884 adapter->total_tx_packets = 0;
901 struct igbvf_adapter *adapter = netdev_priv(netdev);
903 adapter->int_counter0++;
908 if (adapter->rx_ring->set_itr) {
909 writel(adapter->rx_ring->itr_val,
910 adapter->hw.hw_addr + adapter->rx_ring->itr_register);
911 adapter->rx_ring->set_itr = 0;
914 if (napi_schedule_prep(&adapter->rx_ring->napi)) {
915 adapter->total_rx_bytes = 0;
916 adapter->total_rx_packets = 0;
917 __napi_schedule(&adapter->rx_ring->napi);
925 static void igbvf_assign_vector(struct igbvf_adapter *adapter, int rx_queue,
928 struct e1000_hw *hw = &adapter->hw;
948 adapter->rx_ring[rx_queue].eims_value = BIT(msix_vector);
963 adapter->tx_ring[tx_queue].eims_value = BIT(msix_vector);
970 * @adapter: board private structure
975 static void igbvf_configure_msix(struct igbvf_adapter *adapter)
978 struct e1000_hw *hw = &adapter->hw;
979 struct igbvf_ring *tx_ring = adapter->tx_ring;
980 struct igbvf_ring *rx_ring = adapter->rx_ring;
983 adapter->eims_enable_mask = 0;
985 igbvf_assign_vector(adapter, IGBVF_NO_QUEUE, 0, vector++);
986 adapter->eims_enable_mask |= tx_ring->eims_value;
988 igbvf_assign_vector(adapter, 0, IGBVF_NO_QUEUE, vector++);
989 adapter->eims_enable_mask |= rx_ring->eims_value;
998 adapter->eims_enable_mask = GENMASK(vector - 1, 0);
999 adapter->eims_other = BIT(vector - 1);
1003 static void igbvf_reset_interrupt_capability(struct igbvf_adapter *adapter)
1005 if (adapter->msix_entries) {
1006 pci_disable_msix(adapter->pdev);
1007 kfree(adapter->msix_entries);
1008 adapter->msix_entries = NULL;
1014 * @adapter: board private structure
1019 static void igbvf_set_interrupt_capability(struct igbvf_adapter *adapter)
1025 adapter->msix_entries = kcalloc(3, sizeof(struct msix_entry),
1027 if (adapter->msix_entries) {
1029 adapter->msix_entries[i].entry = i;
1031 err = pci_enable_msix_range(adapter->pdev,
1032 adapter->msix_entries, 3, 3);
1037 dev_err(&adapter->pdev->dev,
1039 igbvf_reset_interrupt_capability(adapter);
1045 * @adapter: board private structure
1050 static int igbvf_request_msix(struct igbvf_adapter *adapter)
1052 struct net_device *netdev = adapter->netdev;
1056 sprintf(adapter->tx_ring->name, "%s-tx-0", netdev->name);
1057 sprintf(adapter->rx_ring->name, "%s-rx-0", netdev->name);
1059 memcpy(adapter->tx_ring->name, netdev->name, IFNAMSIZ);
1060 memcpy(adapter->rx_ring->name, netdev->name, IFNAMSIZ);
1063 err = request_irq(adapter->msix_entries[vector].vector,
1064 igbvf_intr_msix_tx, 0, adapter->tx_ring->name,
1069 adapter->tx_ring->itr_register = E1000_EITR(vector);
1070 adapter->tx_ring->itr_val = adapter->current_itr;
1073 err = request_irq(adapter->msix_entries[vector].vector,
1074 igbvf_intr_msix_rx, 0, adapter->rx_ring->name,
1079 adapter->rx_ring->itr_register = E1000_EITR(vector);
1080 adapter->rx_ring->itr_val = adapter->current_itr;
1083 err = request_irq(adapter->msix_entries[vector].vector,
1088 igbvf_configure_msix(adapter);
1091 free_irq(adapter->msix_entries[--vector].vector, netdev);
1093 free_irq(adapter->msix_entries[--vector].vector, netdev);
1100 * @adapter: board private structure to initialize
1102 static int igbvf_alloc_queues(struct igbvf_adapter *adapter)
1104 struct net_device *netdev = adapter->netdev;
1106 adapter->tx_ring = kzalloc(sizeof(struct igbvf_ring), GFP_KERNEL);
1107 if (!adapter->tx_ring)
1110 adapter->rx_ring = kzalloc(sizeof(struct igbvf_ring), GFP_KERNEL);
1111 if (!adapter->rx_ring) {
1112 kfree(adapter->tx_ring);
1116 netif_napi_add(netdev, &adapter->rx_ring->napi, igbvf_poll, 64);
1123 * @adapter: board private structure
1128 static int igbvf_request_irq(struct igbvf_adapter *adapter)
1133 if (adapter->msix_entries)
1134 err = igbvf_request_msix(adapter);
1139 dev_err(&adapter->pdev->dev,
1145 static void igbvf_free_irq(struct igbvf_adapter *adapter)
1147 struct net_device *netdev = adapter->netdev;
1150 if (adapter->msix_entries) {
1152 free_irq(adapter->msix_entries[vector].vector, netdev);
1158 * @adapter: board private structure
1160 static void igbvf_irq_disable(struct igbvf_adapter *adapter)
1162 struct e1000_hw *hw = &adapter->hw;
1166 if (adapter->msix_entries)
1172 * @adapter: board private structure
1174 static void igbvf_irq_enable(struct igbvf_adapter *adapter)
1176 struct e1000_hw *hw = &adapter->hw;
1178 ew32(EIAC, adapter->eims_enable_mask);
1179 ew32(EIAM, adapter->eims_enable_mask);
1180 ew32(EIMS, adapter->eims_enable_mask);
1191 struct igbvf_adapter *adapter = rx_ring->adapter;
1192 struct e1000_hw *hw = &adapter->hw;
1195 igbvf_clean_rx_irq(adapter, &work_done, budget);
1204 if (adapter->requested_itr & 3)
1205 igbvf_set_itr(adapter);
1207 if (!test_bit(__IGBVF_DOWN, &adapter->state))
1208 ew32(EIMS, adapter->rx_ring->eims_value);
1216 * @adapter: board private structure
1220 static void igbvf_set_rlpml(struct igbvf_adapter *adapter)
1223 struct e1000_hw *hw = &adapter->hw;
1225 max_frame_size = adapter->max_frame_size + VLAN_TAG_SIZE;
1237 struct igbvf_adapter *adapter = netdev_priv(netdev);
1238 struct e1000_hw *hw = &adapter->hw;
1243 dev_err(&adapter->pdev->dev, "Failed to add vlan id %d\n", vid);
1250 set_bit(vid, adapter->active_vlans);
1257 struct igbvf_adapter *adapter = netdev_priv(netdev);
1258 struct e1000_hw *hw = &adapter->hw;
1263 dev_err(&adapter->pdev->dev,
1271 clear_bit(vid, adapter->active_vlans);
1275 static void igbvf_restore_vlan(struct igbvf_adapter *adapter)
1279 for_each_set_bit(vid, adapter->active_vlans, VLAN_N_VID)
1280 igbvf_vlan_rx_add_vid(adapter->netdev, htons(ETH_P_8021Q), vid);
1285 * @adapter: board private structure
1289 static void igbvf_configure_tx(struct igbvf_adapter *adapter)
1291 struct e1000_hw *hw = &adapter->hw;
1292 struct igbvf_ring *tx_ring = adapter->tx_ring;
1325 adapter->txd_cmd = E1000_ADVTXD_DCMD_EOP | E1000_ADVTXD_DCMD_IFCS;
1328 adapter->txd_cmd |= E1000_ADVTXD_DCMD_RS;
1333 * @adapter: Board private structure
1335 static void igbvf_setup_srrctl(struct igbvf_adapter *adapter)
1337 struct e1000_hw *hw = &adapter->hw;
1348 srrctl |= ALIGN(adapter->rx_buffer_len, 1024) >>
1351 if (adapter->rx_buffer_len < 2048) {
1352 adapter->rx_ps_hdr_size = 0;
1355 adapter->rx_ps_hdr_size = 128;
1356 srrctl |= adapter->rx_ps_hdr_size <<
1366 * @adapter: board private structure
1370 static void igbvf_configure_rx(struct igbvf_adapter *adapter)
1372 struct e1000_hw *hw = &adapter->hw;
1373 struct igbvf_ring *rx_ring = adapter->rx_ring;
1401 igbvf_set_rlpml(adapter);
1418 struct igbvf_adapter *adapter = netdev_priv(netdev);
1419 struct e1000_hw *hw = &adapter->hw;
1453 struct igbvf_adapter *adapter = netdev_priv(netdev);
1454 struct e1000_hw *hw = &adapter->hw;
1494 * @adapter: private board structure
1496 static void igbvf_configure(struct igbvf_adapter *adapter)
1498 igbvf_set_rx_mode(adapter->netdev);
1500 igbvf_restore_vlan(adapter);
1502 igbvf_configure_tx(adapter);
1503 igbvf_setup_srrctl(adapter);
1504 igbvf_configure_rx(adapter);
1505 igbvf_alloc_rx_buffers(adapter->rx_ring,
1506 igbvf_desc_unused(adapter->rx_ring));
1510 * @adapter: private board structure
1517 static void igbvf_reset(struct igbvf_adapter *adapter)
1519 struct e1000_mac_info *mac = &adapter->hw.mac;
1520 struct net_device *netdev = adapter->netdev;
1521 struct e1000_hw *hw = &adapter->hw;
1527 dev_err(&adapter->pdev->dev, "PF still resetting\n");
1533 if (is_valid_ether_addr(adapter->hw.mac.addr)) {
1534 memcpy(netdev->dev_addr, adapter->hw.mac.addr,
1536 memcpy(netdev->perm_addr, adapter->hw.mac.addr,
1540 adapter->last_reset = jiffies;
1543 int igbvf_up(struct igbvf_adapter *adapter)
1545 struct e1000_hw *hw = &adapter->hw;
1548 igbvf_configure(adapter);
1550 clear_bit(__IGBVF_DOWN, &adapter->state);
1552 napi_enable(&adapter->rx_ring->napi);
1553 if (adapter->msix_entries)
1554 igbvf_configure_msix(adapter);
1558 igbvf_irq_enable(adapter);
1562 mod_timer(&adapter->watchdog_timer, jiffies + 1);
1567 void igbvf_down(struct igbvf_adapter *adapter)
1569 struct net_device *netdev = adapter->netdev;
1570 struct e1000_hw *hw = &adapter->hw;
1576 set_bit(__IGBVF_DOWN, &adapter->state);
1593 napi_disable(&adapter->rx_ring->napi);
1595 igbvf_irq_disable(adapter);
1597 del_timer_sync(&adapter->watchdog_timer);
1600 igbvf_update_stats(adapter);
1602 adapter->link_speed = 0;
1603 adapter->link_duplex = 0;
1605 igbvf_reset(adapter);
1606 igbvf_clean_tx_ring(adapter->tx_ring);
1607 igbvf_clean_rx_ring(adapter->rx_ring);
1610 void igbvf_reinit_locked(struct igbvf_adapter *adapter)
1613 while (test_and_set_bit(__IGBVF_RESETTING, &adapter->state))
1615 igbvf_down(adapter);
1616 igbvf_up(adapter);
1617 clear_bit(__IGBVF_RESETTING, &adapter->state);
1622 * @adapter: board private structure to initialize
1628 static int igbvf_sw_init(struct igbvf_adapter *adapter)
1630 struct net_device *netdev = adapter->netdev;
1633 adapter->rx_buffer_len = ETH_FRAME_LEN + VLAN_HLEN + ETH_FCS_LEN;
1634 adapter->rx_ps_hdr_size = 0;
1635 adapter->max_frame_size = netdev->mtu + ETH_HLEN + ETH_FCS_LEN;
1636 adapter->min_frame_size = ETH_ZLEN + ETH_FCS_LEN;
1638 adapter->tx_int_delay = 8;
1639 adapter->tx_abs_int_delay = 32;
1640 adapter->rx_int_delay = 0;
1641 adapter->rx_abs_int_delay = 8;
1642 adapter->requested_itr = 3;
1643 adapter->current_itr = IGBVF_START_ITR;
1646 adapter->ei->init_ops(&adapter->hw);
1648 rc = adapter->hw.mac.ops.init_params(&adapter->hw);
1652 rc = adapter->hw.mbx.ops.init_params(&adapter->hw);
1656 igbvf_set_interrupt_capability(adapter);
1658 if (igbvf_alloc_queues(adapter))
1661 spin_lock_init(&adapter->tx_queue_lock);
1664 igbvf_irq_disable(adapter);
1666 spin_lock_init(&adapter->stats_lock);
1667 spin_lock_init(&adapter->hw.mbx_lock);
1669 set_bit(__IGBVF_DOWN, &adapter->state);
1673 static void igbvf_initialize_last_counter_stats(struct igbvf_adapter *adapter)
1675 struct e1000_hw *hw = &adapter->hw;
1677 adapter->stats.last_gprc = er32(VFGPRC);
1678 adapter->stats.last_gorc = er32(VFGORC);
1679 adapter->stats.last_gptc = er32(VFGPTC);
1680 adapter->stats.last_gotc = er32(VFGOTC);
1681 adapter->stats.last_mprc = er32(VFMPRC);
1682 adapter->stats.last_gotlbc = er32(VFGOTLBC);
1683 adapter->stats.last_gptlbc = er32(VFGPTLBC);
1684 adapter->stats.last_gorlbc = er32(VFGORLBC);
1685 adapter->stats.last_gprlbc = er32(VFGPRLBC);
1687 adapter->stats.base_gprc = er32(VFGPRC);
1688 adapter->stats.base_gorc = er32(VFGORC);
1689 adapter->stats.base_gptc = er32(VFGPTC);
1690 adapter->stats.base_gotc = er32(VFGOTC);
1691 adapter->stats.base_mprc = er32(VFMPRC);
1692 adapter->stats.base_gotlbc = er32(VFGOTLBC);
1693 adapter->stats.base_gptlbc = er32(VFGPTLBC);
1694 adapter->stats.base_gorlbc = er32(VFGORLBC);
1695 adapter->stats.base_gprlbc = er32(VFGPRLBC);
1712 struct igbvf_adapter *adapter = netdev_priv(netdev);
1713 struct e1000_hw *hw = &adapter->hw;
1717 if (test_bit(__IGBVF_TESTING, &adapter->state))
1721 err = igbvf_setup_tx_resources(adapter, adapter->tx_ring);
1726 err = igbvf_setup_rx_resources(adapter, adapter->rx_ring);
1735 igbvf_configure(adapter);
1737 err = igbvf_request_irq(adapter);
1742 clear_bit(__IGBVF_DOWN, &adapter->state);
1744 napi_enable(&adapter->rx_ring->napi);
1749 igbvf_irq_enable(adapter);
1753 mod_timer(&adapter->watchdog_timer, jiffies + 1);
1758 igbvf_free_rx_resources(adapter->rx_ring);
1760 igbvf_free_tx_resources(adapter->tx_ring);
1762 igbvf_reset(adapter);
1780 struct igbvf_adapter *adapter = netdev_priv(netdev);
1782 WARN_ON(test_bit(__IGBVF_RESETTING, &adapter->state));
1783 igbvf_down(adapter);
1785 igbvf_free_irq(adapter);
1787 igbvf_free_tx_resources(adapter->tx_ring);
1788 igbvf_free_rx_resources(adapter->rx_ring);
1802 struct igbvf_adapter *adapter = netdev_priv(netdev);
1803 struct e1000_hw *hw = &adapter->hw;
1828 if (current_counter < adapter->stats.last_##name) \
1829 adapter->stats.name += 0x100000000LL; \
1830 adapter->stats.last_##name = current_counter; \
1831 adapter->stats.name &= 0xFFFFFFFF00000000LL; \
1832 adapter->stats.name |= current_counter; \
1837 * @adapter: board private structure
1839 void igbvf_update_stats(struct igbvf_adapter *adapter)
1841 struct e1000_hw *hw = &adapter->hw;
1842 struct pci_dev *pdev = adapter->pdev;
1844 /* Prevent stats update while adapter is being reset, link is down
1847 if (adapter->link_speed == 0)
1850 if (test_bit(__IGBVF_RESETTING, &adapter->state))
1867 adapter->netdev->stats.multicast = adapter->stats.mprc;
1870 static void igbvf_print_link_info(struct igbvf_adapter *adapter)
1872 dev_info(&adapter->pdev->dev, "Link is Up %d Mbps %s Duplex\n",
1873 adapter->link_speed,
1874 adapter->link_duplex == FULL_DUPLEX ? "Full" : "Half");
1877 static bool igbvf_has_link(struct igbvf_adapter *adapter)
1879 struct e1000_hw *hw = &adapter->hw;
1884 if (test_bit(__IGBVF_DOWN, &adapter->state))
1896 if (ret_val && time_after(jiffies, adapter->last_reset + (10 * HZ)))
1897 schedule_work(&adapter->reset_task);
1908 struct igbvf_adapter *adapter = from_timer(adapter, t, watchdog_timer);
1911 schedule_work(&adapter->watchdog_task);
1916 struct igbvf_adapter *adapter = container_of(work,
1919 struct net_device *netdev = adapter->netdev;
1920 struct e1000_mac_info *mac = &adapter->hw.mac;
1921 struct igbvf_ring *tx_ring = adapter->tx_ring;
1922 struct e1000_hw *hw = &adapter->hw;
1926 link = igbvf_has_link(adapter);
1930 mac->ops.get_link_up_info(&adapter->hw,
1931 &adapter->link_speed,
1932 &adapter->link_duplex);
1933 igbvf_print_link_info(adapter);
1940 adapter->link_speed = 0;
1941 adapter->link_duplex = 0;
1942 dev_info(&adapter->pdev->dev, "Link is Down\n");
1949 igbvf_update_stats(adapter);
1959 adapter->tx_timeout_count++;
1960 schedule_work(&adapter->reset_task);
1965 ew32(EICS, adapter->rx_ring->eims_value);
1968 if (!test_bit(__IGBVF_DOWN, &adapter->state))
1969 mod_timer(&adapter->watchdog_timer,
2134 struct igbvf_adapter *adapter = netdev_priv(netdev);
2137 if (igbvf_desc_unused(adapter->tx_ring) >= size)
2149 if (igbvf_desc_unused(adapter->tx_ring) < size)
2154 ++adapter->restart_queue;
2161 static inline int igbvf_tx_map_adv(struct igbvf_adapter *adapter,
2166 struct pci_dev *pdev = adapter->pdev;
2227 igbvf_put_txbuf(adapter, buffer_info);
2233 static inline void igbvf_tx_queue_adv(struct igbvf_adapter *adapter,
2279 tx_desc->read.cmd_type_len |= cpu_to_le32(adapter->txd_cmd);
2289 writel(i, adapter->hw.hw_addr + tx_ring->tail);
2296 struct igbvf_adapter *adapter = netdev_priv(netdev);
2303 if (test_bit(__IGBVF_DOWN, &adapter->state)) {
2350 count = igbvf_tx_map_adv(adapter, tx_ring, skb);
2353 igbvf_tx_queue_adv(adapter, tx_ring, tx_flags, count,
2369 struct igbvf_adapter *adapter = netdev_priv(netdev);
2372 if (test_bit(__IGBVF_DOWN, &adapter->state)) {
2377 tx_ring = &adapter->tx_ring[0];
2389 struct igbvf_adapter *adapter = netdev_priv(netdev);
2392 adapter->tx_timeout_count++;
2393 schedule_work(&adapter->reset_task);
2398 struct igbvf_adapter *adapter;
2400 adapter = container_of(work, struct igbvf_adapter, reset_task);
2402 igbvf_reinit_locked(adapter);
2414 struct igbvf_adapter *adapter = netdev_priv(netdev);
2417 while (test_and_set_bit(__IGBVF_RESETTING, &adapter->state))
2420 adapter->max_frame_size = max_frame;
2422 igbvf_down(adapter);
2433 adapter->rx_buffer_len = 1024;
2435 adapter->rx_buffer_len = 2048;
2438 adapter->rx_buffer_len = 16384;
2440 adapter->rx_buffer_len = PAGE_SIZE / 2;
2446 adapter->rx_buffer_len = ETH_FRAME_LEN + VLAN_HLEN +
2454 igbvf_up(adapter);
2456 igbvf_reset(adapter);
2458 clear_bit(__IGBVF_RESETTING, &adapter->state);
2474 struct igbvf_adapter *adapter = netdev_priv(netdev);
2479 WARN_ON(test_bit(__IGBVF_RESETTING, &adapter->state));
2480 igbvf_down(adapter);
2481 igbvf_free_irq(adapter);
2491 struct igbvf_adapter *adapter = netdev_priv(netdev);
2497 err = igbvf_request_irq(adapter);
2502 igbvf_reset(adapter);
2505 igbvf_up(adapter);
2524 struct igbvf_adapter *adapter = netdev_priv(netdev);
2526 disable_irq(adapter->pdev->irq);
2528 igbvf_clean_tx_irq(adapter->tx_ring);
2530 enable_irq(adapter->pdev->irq);
2546 struct igbvf_adapter *adapter = netdev_priv(netdev);
2554 igbvf_down(adapter);
2571 struct igbvf_adapter *adapter = netdev_priv(netdev);
2580 igbvf_reset(adapter);
2596 struct igbvf_adapter *adapter = netdev_priv(netdev);
2599 if (igbvf_up(adapter)) {
2609 static void igbvf_print_device_info(struct igbvf_adapter *adapter)
2611 struct e1000_hw *hw = &adapter->hw;
2612 struct net_device *netdev = adapter->netdev;
2613 struct pci_dev *pdev = adapter->pdev;
2625 struct igbvf_adapter *adapter = netdev_priv(netdev);
2628 adapter->flags &= ~IGBVF_FLAG_RX_CSUM_DISABLED;
2630 adapter->flags |= IGBVF_FLAG_RX_CSUM_DISABLED;
2694 * igbvf_probe initializes an adapter identified by a pci_dev structure.
2695 * The OS initialization, configuring of the adapter private structure,
2701 struct igbvf_adapter *adapter;
2739 adapter = netdev_priv(netdev);
2740 hw = &adapter->hw;
2741 adapter->netdev = netdev;
2742 adapter->pdev = pdev;
2743 adapter->ei = ei;
2744 adapter->pba = ei->pba;
2745 adapter->flags = ei->flags;
2746 adapter->hw.back = adapter;
2747 adapter->hw.mac.type = ei->mac;
2748 adapter->msg_enable = netif_msg_init(debug, DEFAULT_MSG_ENABLE);
2759 adapter->hw.hw_addr = ioremap(pci_resource_start(pdev, 0),
2762 if (!adapter->hw.hw_addr)
2766 err = ei->get_variants(adapter);
2771 /* setup adapter struct */
2772 err = igbvf_sw_init(adapter);
2783 adapter->bd_number = cards_found++;
2832 else if (is_zero_ether_addr(adapter->hw.mac.addr))
2835 memcpy(netdev->dev_addr, adapter->hw.mac.addr,
2844 memcpy(adapter->hw.mac.addr, netdev->dev_addr,
2848 timer_setup(&adapter->watchdog_timer, igbvf_watchdog, 0);
2850 INIT_WORK(&adapter->reset_task, igbvf_reset_task);
2851 INIT_WORK(&adapter->watchdog_task, igbvf_watchdog_task);
2854 adapter->rx_ring->count = 1024;
2855 adapter->tx_ring->count = 1024;
2858 igbvf_reset(adapter);
2861 if (adapter->hw.mac.type == e1000_vfadapt_i350)
2862 adapter->flags |= IGBVF_FLAG_RX_LB_VLAN_BSWAP;
2873 igbvf_print_device_info(adapter);
2875 igbvf_initialize_last_counter_stats(adapter);
2880 netif_napi_del(&adapter->rx_ring->napi);
2881 kfree(adapter->tx_ring);
2882 kfree(adapter->rx_ring);
2884 igbvf_reset_interrupt_capability(adapter);
2886 iounmap(adapter->hw.hw_addr);
2909 struct igbvf_adapter *adapter = netdev_priv(netdev);
2910 struct e1000_hw *hw = &adapter->hw;
2915 set_bit(__IGBVF_DOWN, &adapter->state);
2916 del_timer_sync(&adapter->watchdog_timer);
2918 cancel_work_sync(&adapter->reset_task);
2919 cancel_work_sync(&adapter->watchdog_task);
2923 igbvf_reset_interrupt_capability(adapter);
2928 netif_napi_del(&adapter->rx_ring->napi);
2929 kfree(adapter->tx_ring);
2930 kfree(adapter->rx_ring);