Lines Matching full:adapter
49 static int ixgb_sw_init(struct ixgb_adapter *adapter);
52 static void ixgb_configure_tx(struct ixgb_adapter *adapter);
53 static void ixgb_configure_rx(struct ixgb_adapter *adapter);
54 static void ixgb_setup_rctl(struct ixgb_adapter *adapter);
55 static void ixgb_clean_tx_ring(struct ixgb_adapter *adapter);
56 static void ixgb_clean_rx_ring(struct ixgb_adapter *adapter);
64 static bool ixgb_clean_tx_irq(struct ixgb_adapter *adapter);
73 static void ixgb_vlan_strip_enable(struct ixgb_adapter *adapter);
74 static void ixgb_vlan_strip_disable(struct ixgb_adapter *adapter);
79 static void ixgb_restore_vlan(struct ixgb_adapter *adapter);
144 * @adapter: board private structure
148 ixgb_irq_disable(struct ixgb_adapter *adapter) in ixgb_irq_disable() argument
150 IXGB_WRITE_REG(&adapter->hw, IMC, ~0); in ixgb_irq_disable()
151 IXGB_WRITE_FLUSH(&adapter->hw); in ixgb_irq_disable()
152 synchronize_irq(adapter->pdev->irq); in ixgb_irq_disable()
157 * @adapter: board private structure
161 ixgb_irq_enable(struct ixgb_adapter *adapter) in ixgb_irq_enable() argument
165 if (adapter->hw.subsystem_vendor_id == PCI_VENDOR_ID_SUN) in ixgb_irq_enable()
167 IXGB_WRITE_REG(&adapter->hw, IMS, val); in ixgb_irq_enable()
168 IXGB_WRITE_FLUSH(&adapter->hw); in ixgb_irq_enable()
172 ixgb_up(struct ixgb_adapter *adapter) in ixgb_up() argument
174 struct net_device *netdev = adapter->netdev; in ixgb_up()
177 struct ixgb_hw *hw = &adapter->hw; in ixgb_up()
184 ixgb_restore_vlan(adapter); in ixgb_up()
186 ixgb_configure_tx(adapter); in ixgb_up()
187 ixgb_setup_rctl(adapter); in ixgb_up()
188 ixgb_configure_rx(adapter); in ixgb_up()
189 ixgb_alloc_rx_buffers(adapter, IXGB_DESC_UNUSED(&adapter->rx_ring)); in ixgb_up()
192 IXGB_WRITE_REG(&adapter->hw, IMC, 0xffffffff); in ixgb_up()
195 if (IXGB_READ_REG(&adapter->hw, STATUS) & IXGB_STATUS_PCIX_MODE) { in ixgb_up()
196 err = pci_enable_msi(adapter->pdev); in ixgb_up()
198 adapter->have_msi = true; in ixgb_up()
204 err = request_irq(adapter->pdev->irq, ixgb_intr, irq_flags, in ixgb_up()
207 if (adapter->have_msi) in ixgb_up()
208 pci_disable_msi(adapter->pdev); in ixgb_up()
209 netif_err(adapter, probe, adapter->netdev, in ixgb_up()
233 clear_bit(__IXGB_DOWN, &adapter->flags); in ixgb_up()
235 napi_enable(&adapter->napi); in ixgb_up()
236 ixgb_irq_enable(adapter); in ixgb_up()
240 mod_timer(&adapter->watchdog_timer, jiffies); in ixgb_up()
246 ixgb_down(struct ixgb_adapter *adapter, bool kill_watchdog) in ixgb_down() argument
248 struct net_device *netdev = adapter->netdev; in ixgb_down()
251 set_bit(__IXGB_DOWN, &adapter->flags); in ixgb_down()
255 napi_disable(&adapter->napi); in ixgb_down()
257 ixgb_irq_disable(adapter); in ixgb_down()
258 free_irq(adapter->pdev->irq, netdev); in ixgb_down()
260 if (adapter->have_msi) in ixgb_down()
261 pci_disable_msi(adapter->pdev); in ixgb_down()
264 del_timer_sync(&adapter->watchdog_timer); in ixgb_down()
266 adapter->link_speed = 0; in ixgb_down()
267 adapter->link_duplex = 0; in ixgb_down()
270 ixgb_reset(adapter); in ixgb_down()
271 ixgb_clean_tx_ring(adapter); in ixgb_down()
272 ixgb_clean_rx_ring(adapter); in ixgb_down()
276 ixgb_reset(struct ixgb_adapter *adapter) in ixgb_reset() argument
278 struct ixgb_hw *hw = &adapter->hw; in ixgb_reset()
282 netif_err(adapter, probe, adapter->netdev, "ixgb_init_hw failed\n"); in ixgb_reset()
312 struct ixgb_adapter *adapter = netdev_priv(netdev); in ixgb_set_features() local
318 adapter->rx_csum = !!(features & NETIF_F_RXCSUM); in ixgb_set_features()
321 ixgb_down(adapter, true); in ixgb_set_features()
322 ixgb_up(adapter); in ixgb_set_features()
325 ixgb_reset(adapter); in ixgb_set_features()
353 * ixgb_probe initializes an adapter identified by a pci_dev structure.
354 * The OS initialization, configuring of the adapter private structure,
362 struct ixgb_adapter *adapter; in ixgb_probe() local
399 adapter = netdev_priv(netdev); in ixgb_probe()
400 adapter->netdev = netdev; in ixgb_probe()
401 adapter->pdev = pdev; in ixgb_probe()
402 adapter->hw.back = adapter; in ixgb_probe()
403 adapter->msg_enable = netif_msg_init(debug, DEFAULT_MSG_ENABLE); in ixgb_probe()
405 adapter->hw.hw_addr = pci_ioremap_bar(pdev, BAR_0); in ixgb_probe()
406 if (!adapter->hw.hw_addr) { in ixgb_probe()
415 adapter->hw.io_base = pci_resource_start(pdev, i); in ixgb_probe()
423 netif_napi_add(netdev, &adapter->napi, ixgb_clean, 64); in ixgb_probe()
427 adapter->bd_number = cards_found; in ixgb_probe()
428 adapter->link_speed = 0; in ixgb_probe()
429 adapter->link_duplex = 0; in ixgb_probe()
433 err = ixgb_sw_init(adapter); in ixgb_probe()
457 if (!ixgb_validate_eeprom_checksum(&adapter->hw)) { in ixgb_probe()
458 netif_err(adapter, probe, adapter->netdev, in ixgb_probe()
464 ixgb_get_ee_mac_addr(&adapter->hw, netdev->dev_addr); in ixgb_probe()
467 netif_err(adapter, probe, adapter->netdev, "Invalid MAC Address\n"); in ixgb_probe()
472 adapter->part_num = ixgb_get_ee_pba_number(&adapter->hw); in ixgb_probe()
474 timer_setup(&adapter->watchdog_timer, ixgb_watchdog, 0); in ixgb_probe()
476 INIT_WORK(&adapter->tx_timeout_task, ixgb_tx_timeout_task); in ixgb_probe()
486 netif_info(adapter, probe, adapter->netdev, in ixgb_probe()
488 ixgb_check_options(adapter); in ixgb_probe()
491 ixgb_reset(adapter); in ixgb_probe()
499 iounmap(adapter->hw.hw_addr); in ixgb_probe()
524 struct ixgb_adapter *adapter = netdev_priv(netdev); in ixgb_remove() local
526 cancel_work_sync(&adapter->tx_timeout_task); in ixgb_remove()
530 iounmap(adapter->hw.hw_addr); in ixgb_remove()
539 * @adapter: board private structure to initialize
541 * ixgb_sw_init initializes the Adapter private data structure.
547 ixgb_sw_init(struct ixgb_adapter *adapter) in ixgb_sw_init() argument
549 struct ixgb_hw *hw = &adapter->hw; in ixgb_sw_init()
550 struct net_device *netdev = adapter->netdev; in ixgb_sw_init()
551 struct pci_dev *pdev = adapter->pdev; in ixgb_sw_init()
561 adapter->rx_buffer_len = hw->max_frame_size + 8; /* + 8 for errata */ in ixgb_sw_init()
570 netif_err(adapter, probe, adapter->netdev, "unsupported device id\n"); in ixgb_sw_init()
576 set_bit(__IXGB_DOWN, &adapter->flags); in ixgb_sw_init()
596 struct ixgb_adapter *adapter = netdev_priv(netdev); in ixgb_open() local
600 err = ixgb_setup_tx_resources(adapter); in ixgb_open()
608 err = ixgb_setup_rx_resources(adapter); in ixgb_open()
612 err = ixgb_up(adapter); in ixgb_open()
621 ixgb_free_rx_resources(adapter); in ixgb_open()
623 ixgb_free_tx_resources(adapter); in ixgb_open()
625 ixgb_reset(adapter); in ixgb_open()
645 struct ixgb_adapter *adapter = netdev_priv(netdev); in ixgb_close() local
647 ixgb_down(adapter, true); in ixgb_close()
649 ixgb_free_tx_resources(adapter); in ixgb_close()
650 ixgb_free_rx_resources(adapter); in ixgb_close()
657 * @adapter: board private structure
663 ixgb_setup_tx_resources(struct ixgb_adapter *adapter) in ixgb_setup_tx_resources() argument
665 struct ixgb_desc_ring *txdr = &adapter->tx_ring; in ixgb_setup_tx_resources()
666 struct pci_dev *pdev = adapter->pdev; in ixgb_setup_tx_resources()
694 * @adapter: board private structure
700 ixgb_configure_tx(struct ixgb_adapter *adapter) in ixgb_configure_tx() argument
702 u64 tdba = adapter->tx_ring.dma; in ixgb_configure_tx()
703 u32 tdlen = adapter->tx_ring.count * sizeof(struct ixgb_tx_desc); in ixgb_configure_tx()
705 struct ixgb_hw *hw = &adapter->hw; in ixgb_configure_tx()
725 IXGB_WRITE_REG(hw, TIDV, adapter->tx_int_delay); in ixgb_configure_tx()
732 /* Setup Transmit Descriptor Settings for this adapter */ in ixgb_configure_tx()
733 adapter->tx_cmd_type = in ixgb_configure_tx()
735 (adapter->tx_int_delay_enable ? IXGB_TX_DESC_CMD_IDE : 0); in ixgb_configure_tx()
740 * @adapter: board private structure
746 ixgb_setup_rx_resources(struct ixgb_adapter *adapter) in ixgb_setup_rx_resources() argument
748 struct ixgb_desc_ring *rxdr = &adapter->rx_ring; in ixgb_setup_rx_resources()
749 struct pci_dev *pdev = adapter->pdev; in ixgb_setup_rx_resources()
778 * @adapter: Board private structure
782 ixgb_setup_rctl(struct ixgb_adapter *adapter) in ixgb_setup_rctl() argument
786 rctl = IXGB_READ_REG(&adapter->hw, RCTL); in ixgb_setup_rctl()
793 (adapter->hw.mc_filter_type << IXGB_RCTL_MO_SHIFT); in ixgb_setup_rctl()
797 if (adapter->rx_buffer_len <= IXGB_RXBUFFER_2048) in ixgb_setup_rctl()
799 else if (adapter->rx_buffer_len <= IXGB_RXBUFFER_4096) in ixgb_setup_rctl()
801 else if (adapter->rx_buffer_len <= IXGB_RXBUFFER_8192) in ixgb_setup_rctl()
803 else if (adapter->rx_buffer_len <= IXGB_RXBUFFER_16384) in ixgb_setup_rctl()
806 IXGB_WRITE_REG(&adapter->hw, RCTL, rctl); in ixgb_setup_rctl()
811 * @adapter: board private structure
817 ixgb_configure_rx(struct ixgb_adapter *adapter) in ixgb_configure_rx() argument
819 u64 rdba = adapter->rx_ring.dma; in ixgb_configure_rx()
820 u32 rdlen = adapter->rx_ring.count * sizeof(struct ixgb_rx_desc); in ixgb_configure_rx()
821 struct ixgb_hw *hw = &adapter->hw; in ixgb_configure_rx()
832 IXGB_WRITE_REG(hw, RDTR, adapter->rx_int_delay); in ixgb_configure_rx()
853 if (adapter->rx_csum) { in ixgb_configure_rx()
866 * @adapter: board private structure
872 ixgb_free_tx_resources(struct ixgb_adapter *adapter) in ixgb_free_tx_resources() argument
874 struct pci_dev *pdev = adapter->pdev; in ixgb_free_tx_resources()
876 ixgb_clean_tx_ring(adapter); in ixgb_free_tx_resources()
878 vfree(adapter->tx_ring.buffer_info); in ixgb_free_tx_resources()
879 adapter->tx_ring.buffer_info = NULL; in ixgb_free_tx_resources()
881 dma_free_coherent(&pdev->dev, adapter->tx_ring.size, in ixgb_free_tx_resources()
882 adapter->tx_ring.desc, adapter->tx_ring.dma); in ixgb_free_tx_resources()
884 adapter->tx_ring.desc = NULL; in ixgb_free_tx_resources()
888 ixgb_unmap_and_free_tx_resource(struct ixgb_adapter *adapter, in ixgb_unmap_and_free_tx_resource() argument
893 dma_unmap_page(&adapter->pdev->dev, buffer_info->dma, in ixgb_unmap_and_free_tx_resource()
896 dma_unmap_single(&adapter->pdev->dev, buffer_info->dma, in ixgb_unmap_and_free_tx_resource()
913 * @adapter: board private structure
917 ixgb_clean_tx_ring(struct ixgb_adapter *adapter) in ixgb_clean_tx_ring() argument
919 struct ixgb_desc_ring *tx_ring = &adapter->tx_ring; in ixgb_clean_tx_ring()
928 ixgb_unmap_and_free_tx_resource(adapter, buffer_info); in ixgb_clean_tx_ring()
941 IXGB_WRITE_REG(&adapter->hw, TDH, 0); in ixgb_clean_tx_ring()
942 IXGB_WRITE_REG(&adapter->hw, TDT, 0); in ixgb_clean_tx_ring()
947 * @adapter: board private structure
953 ixgb_free_rx_resources(struct ixgb_adapter *adapter) in ixgb_free_rx_resources() argument
955 struct ixgb_desc_ring *rx_ring = &adapter->rx_ring; in ixgb_free_rx_resources()
956 struct pci_dev *pdev = adapter->pdev; in ixgb_free_rx_resources()
958 ixgb_clean_rx_ring(adapter); in ixgb_free_rx_resources()
971 * @adapter: board private structure
975 ixgb_clean_rx_ring(struct ixgb_adapter *adapter) in ixgb_clean_rx_ring() argument
977 struct ixgb_desc_ring *rx_ring = &adapter->rx_ring; in ixgb_clean_rx_ring()
979 struct pci_dev *pdev = adapter->pdev; in ixgb_clean_rx_ring()
1012 IXGB_WRITE_REG(&adapter->hw, RDH, 0); in ixgb_clean_rx_ring()
1013 IXGB_WRITE_REG(&adapter->hw, RDT, 0); in ixgb_clean_rx_ring()
1027 struct ixgb_adapter *adapter = netdev_priv(netdev); in ixgb_set_mac() local
1035 ixgb_rar_set(&adapter->hw, addr->sa_data, 0); in ixgb_set_mac()
1053 struct ixgb_adapter *adapter = netdev_priv(netdev); in ixgb_set_multi() local
1054 struct ixgb_hw *hw = &adapter->hw; in ixgb_set_multi()
1104 ixgb_vlan_strip_enable(adapter); in ixgb_set_multi()
1106 ixgb_vlan_strip_disable(adapter); in ixgb_set_multi()
1118 struct ixgb_adapter *adapter = from_timer(adapter, t, watchdog_timer); in ixgb_watchdog() local
1119 struct net_device *netdev = adapter->netdev; in ixgb_watchdog()
1120 struct ixgb_desc_ring *txdr = &adapter->tx_ring; in ixgb_watchdog()
1122 ixgb_check_for_link(&adapter->hw); in ixgb_watchdog()
1124 if (ixgb_check_for_bad_link(&adapter->hw)) { in ixgb_watchdog()
1129 if (adapter->hw.link_up) { in ixgb_watchdog()
1133 (adapter->hw.fc.type == ixgb_fc_full) ? in ixgb_watchdog()
1135 (adapter->hw.fc.type == ixgb_fc_rx_pause) ? in ixgb_watchdog()
1137 (adapter->hw.fc.type == ixgb_fc_tx_pause) ? in ixgb_watchdog()
1139 adapter->link_speed = 10000; in ixgb_watchdog()
1140 adapter->link_duplex = FULL_DUPLEX; in ixgb_watchdog()
1145 adapter->link_speed = 0; in ixgb_watchdog()
1146 adapter->link_duplex = 0; in ixgb_watchdog()
1152 ixgb_update_stats(adapter); in ixgb_watchdog()
1160 schedule_work(&adapter->tx_timeout_task); in ixgb_watchdog()
1167 adapter->detect_tx_hung = true; in ixgb_watchdog()
1170 IXGB_WRITE_REG(&adapter->hw, ICS, IXGB_INT_TXDW); in ixgb_watchdog()
1173 mod_timer(&adapter->watchdog_timer, jiffies + 2 * HZ); in ixgb_watchdog()
1181 ixgb_tso(struct ixgb_adapter *adapter, struct sk_buff *skb) in ixgb_tso() argument
1212 i = adapter->tx_ring.next_to_use; in ixgb_tso()
1213 context_desc = IXGB_CONTEXT_DESC(adapter->tx_ring, i); in ixgb_tso()
1214 buffer_info = &adapter->tx_ring.buffer_info[i]; in ixgb_tso()
1235 if (++i == adapter->tx_ring.count) i = 0; in ixgb_tso()
1236 adapter->tx_ring.next_to_use = i; in ixgb_tso()
1245 ixgb_tx_csum(struct ixgb_adapter *adapter, struct sk_buff *skb) in ixgb_tx_csum() argument
1256 i = adapter->tx_ring.next_to_use; in ixgb_tx_csum()
1257 context_desc = IXGB_CONTEXT_DESC(adapter->tx_ring, i); in ixgb_tx_csum()
1258 buffer_info = &adapter->tx_ring.buffer_info[i]; in ixgb_tx_csum()
1273 if (++i == adapter->tx_ring.count) i = 0; in ixgb_tx_csum()
1274 adapter->tx_ring.next_to_use = i; in ixgb_tx_csum()
1286 ixgb_tx_map(struct ixgb_adapter *adapter, struct sk_buff *skb, in ixgb_tx_map() argument
1289 struct ixgb_desc_ring *tx_ring = &adapter->tx_ring; in ixgb_tx_map()
1290 struct pci_dev *pdev = adapter->pdev; in ixgb_tx_map()
1379 ixgb_unmap_and_free_tx_resource(adapter, buffer_info); in ixgb_tx_map()
1386 ixgb_tx_queue(struct ixgb_adapter *adapter, int count, int vlan_id,int tx_flags) in ixgb_tx_queue() argument
1388 struct ixgb_desc_ring *tx_ring = &adapter->tx_ring; in ixgb_tx_queue()
1391 u32 cmd_type_len = adapter->tx_cmd_type; in ixgb_tx_queue()
1432 IXGB_WRITE_REG(&adapter->hw, TDT, i); in ixgb_tx_queue()
1437 struct ixgb_adapter *adapter = netdev_priv(netdev); in __ixgb_maybe_stop_tx() local
1438 struct ixgb_desc_ring *tx_ring = &adapter->tx_ring; in __ixgb_maybe_stop_tx()
1453 ++adapter->restart_queue; in __ixgb_maybe_stop_tx()
1476 struct ixgb_adapter *adapter = netdev_priv(netdev); in ixgb_xmit_frame() local
1483 if (test_bit(__IXGB_DOWN, &adapter->flags)) { in ixgb_xmit_frame()
1493 if (unlikely(ixgb_maybe_stop_tx(netdev, &adapter->tx_ring, in ixgb_xmit_frame()
1502 first = adapter->tx_ring.next_to_use; in ixgb_xmit_frame()
1504 tso = ixgb_tso(adapter, skb); in ixgb_xmit_frame()
1512 else if (ixgb_tx_csum(adapter, skb)) in ixgb_xmit_frame()
1515 count = ixgb_tx_map(adapter, skb, first); in ixgb_xmit_frame()
1518 ixgb_tx_queue(adapter, count, vlan_id, tx_flags); in ixgb_xmit_frame()
1520 ixgb_maybe_stop_tx(netdev, &adapter->tx_ring, DESC_NEEDED); in ixgb_xmit_frame()
1524 adapter->tx_ring.buffer_info[first].time_stamp = 0; in ixgb_xmit_frame()
1525 adapter->tx_ring.next_to_use = first; in ixgb_xmit_frame()
1540 struct ixgb_adapter *adapter = netdev_priv(netdev); in ixgb_tx_timeout() local
1543 schedule_work(&adapter->tx_timeout_task); in ixgb_tx_timeout()
1549 struct ixgb_adapter *adapter = in ixgb_tx_timeout_task() local
1552 adapter->tx_timeout_count++; in ixgb_tx_timeout_task()
1553 ixgb_down(adapter, true); in ixgb_tx_timeout_task()
1554 ixgb_up(adapter); in ixgb_tx_timeout_task()
1568 struct ixgb_adapter *adapter = netdev_priv(netdev); in ixgb_change_mtu() local
1572 ixgb_down(adapter, true); in ixgb_change_mtu()
1574 adapter->rx_buffer_len = max_frame + 8; /* + 8 for errata */ in ixgb_change_mtu()
1579 ixgb_up(adapter); in ixgb_change_mtu()
1586 * @adapter: board private structure
1590 ixgb_update_stats(struct ixgb_adapter *adapter) in ixgb_update_stats() argument
1592 struct net_device *netdev = adapter->netdev; in ixgb_update_stats()
1593 struct pci_dev *pdev = adapter->pdev; in ixgb_update_stats()
1595 /* Prevent stats update while adapter is being reset */ in ixgb_update_stats()
1601 u64 multi = IXGB_READ_REG(&adapter->hw, MPRCL); in ixgb_update_stats()
1602 u32 bcast_l = IXGB_READ_REG(&adapter->hw, BPRCL); in ixgb_update_stats()
1603 u32 bcast_h = IXGB_READ_REG(&adapter->hw, BPRCH); in ixgb_update_stats()
1606 multi |= ((u64)IXGB_READ_REG(&adapter->hw, MPRCH) << 32); in ixgb_update_stats()
1611 adapter->stats.mprcl += (multi & 0xFFFFFFFF); in ixgb_update_stats()
1612 adapter->stats.mprch += (multi >> 32); in ixgb_update_stats()
1613 adapter->stats.bprcl += bcast_l; in ixgb_update_stats()
1614 adapter->stats.bprch += bcast_h; in ixgb_update_stats()
1616 adapter->stats.mprcl += IXGB_READ_REG(&adapter->hw, MPRCL); in ixgb_update_stats()
1617 adapter->stats.mprch += IXGB_READ_REG(&adapter->hw, MPRCH); in ixgb_update_stats()
1618 adapter->stats.bprcl += IXGB_READ_REG(&adapter->hw, BPRCL); in ixgb_update_stats()
1619 adapter->stats.bprch += IXGB_READ_REG(&adapter->hw, BPRCH); in ixgb_update_stats()
1621 adapter->stats.tprl += IXGB_READ_REG(&adapter->hw, TPRL); in ixgb_update_stats()
1622 adapter->stats.tprh += IXGB_READ_REG(&adapter->hw, TPRH); in ixgb_update_stats()
1623 adapter->stats.gprcl += IXGB_READ_REG(&adapter->hw, GPRCL); in ixgb_update_stats()
1624 adapter->stats.gprch += IXGB_READ_REG(&adapter->hw, GPRCH); in ixgb_update_stats()
1625 adapter->stats.uprcl += IXGB_READ_REG(&adapter->hw, UPRCL); in ixgb_update_stats()
1626 adapter->stats.uprch += IXGB_READ_REG(&adapter->hw, UPRCH); in ixgb_update_stats()
1627 adapter->stats.vprcl += IXGB_READ_REG(&adapter->hw, VPRCL); in ixgb_update_stats()
1628 adapter->stats.vprch += IXGB_READ_REG(&adapter->hw, VPRCH); in ixgb_update_stats()
1629 adapter->stats.jprcl += IXGB_READ_REG(&adapter->hw, JPRCL); in ixgb_update_stats()
1630 adapter->stats.jprch += IXGB_READ_REG(&adapter->hw, JPRCH); in ixgb_update_stats()
1631 adapter->stats.gorcl += IXGB_READ_REG(&adapter->hw, GORCL); in ixgb_update_stats()
1632 adapter->stats.gorch += IXGB_READ_REG(&adapter->hw, GORCH); in ixgb_update_stats()
1633 adapter->stats.torl += IXGB_READ_REG(&adapter->hw, TORL); in ixgb_update_stats()
1634 adapter->stats.torh += IXGB_READ_REG(&adapter->hw, TORH); in ixgb_update_stats()
1635 adapter->stats.rnbc += IXGB_READ_REG(&adapter->hw, RNBC); in ixgb_update_stats()
1636 adapter->stats.ruc += IXGB_READ_REG(&adapter->hw, RUC); in ixgb_update_stats()
1637 adapter->stats.roc += IXGB_READ_REG(&adapter->hw, ROC); in ixgb_update_stats()
1638 adapter->stats.rlec += IXGB_READ_REG(&adapter->hw, RLEC); in ixgb_update_stats()
1639 adapter->stats.crcerrs += IXGB_READ_REG(&adapter->hw, CRCERRS); in ixgb_update_stats()
1640 adapter->stats.icbc += IXGB_READ_REG(&adapter->hw, ICBC); in ixgb_update_stats()
1641 adapter->stats.ecbc += IXGB_READ_REG(&adapter->hw, ECBC); in ixgb_update_stats()
1642 adapter->stats.mpc += IXGB_READ_REG(&adapter->hw, MPC); in ixgb_update_stats()
1643 adapter->stats.tptl += IXGB_READ_REG(&adapter->hw, TPTL); in ixgb_update_stats()
1644 adapter->stats.tpth += IXGB_READ_REG(&adapter->hw, TPTH); in ixgb_update_stats()
1645 adapter->stats.gptcl += IXGB_READ_REG(&adapter->hw, GPTCL); in ixgb_update_stats()
1646 adapter->stats.gptch += IXGB_READ_REG(&adapter->hw, GPTCH); in ixgb_update_stats()
1647 adapter->stats.bptcl += IXGB_READ_REG(&adapter->hw, BPTCL); in ixgb_update_stats()
1648 adapter->stats.bptch += IXGB_READ_REG(&adapter->hw, BPTCH); in ixgb_update_stats()
1649 adapter->stats.mptcl += IXGB_READ_REG(&adapter->hw, MPTCL); in ixgb_update_stats()
1650 adapter->stats.mptch += IXGB_READ_REG(&adapter->hw, MPTCH); in ixgb_update_stats()
1651 adapter->stats.uptcl += IXGB_READ_REG(&adapter->hw, UPTCL); in ixgb_update_stats()
1652 adapter->stats.uptch += IXGB_READ_REG(&adapter->hw, UPTCH); in ixgb_update_stats()
1653 adapter->stats.vptcl += IXGB_READ_REG(&adapter->hw, VPTCL); in ixgb_update_stats()
1654 adapter->stats.vptch += IXGB_READ_REG(&adapter->hw, VPTCH); in ixgb_update_stats()
1655 adapter->stats.jptcl += IXGB_READ_REG(&adapter->hw, JPTCL); in ixgb_update_stats()
1656 adapter->stats.jptch += IXGB_READ_REG(&adapter->hw, JPTCH); in ixgb_update_stats()
1657 adapter->stats.gotcl += IXGB_READ_REG(&adapter->hw, GOTCL); in ixgb_update_stats()
1658 adapter->stats.gotch += IXGB_READ_REG(&adapter->hw, GOTCH); in ixgb_update_stats()
1659 adapter->stats.totl += IXGB_READ_REG(&adapter->hw, TOTL); in ixgb_update_stats()
1660 adapter->stats.toth += IXGB_READ_REG(&adapter->hw, TOTH); in ixgb_update_stats()
1661 adapter->stats.dc += IXGB_READ_REG(&adapter->hw, DC); in ixgb_update_stats()
1662 adapter->stats.plt64c += IXGB_READ_REG(&adapter->hw, PLT64C); in ixgb_update_stats()
1663 adapter->stats.tsctc += IXGB_READ_REG(&adapter->hw, TSCTC); in ixgb_update_stats()
1664 adapter->stats.tsctfc += IXGB_READ_REG(&adapter->hw, TSCTFC); in ixgb_update_stats()
1665 adapter->stats.ibic += IXGB_READ_REG(&adapter->hw, IBIC); in ixgb_update_stats()
1666 adapter->stats.rfc += IXGB_READ_REG(&adapter->hw, RFC); in ixgb_update_stats()
1667 adapter->stats.lfc += IXGB_READ_REG(&adapter->hw, LFC); in ixgb_update_stats()
1668 adapter->stats.pfrc += IXGB_READ_REG(&adapter->hw, PFRC); in ixgb_update_stats()
1669 adapter->stats.pftc += IXGB_READ_REG(&adapter->hw, PFTC); in ixgb_update_stats()
1670 adapter->stats.mcfrc += IXGB_READ_REG(&adapter->hw, MCFRC); in ixgb_update_stats()
1671 adapter->stats.mcftc += IXGB_READ_REG(&adapter->hw, MCFTC); in ixgb_update_stats()
1672 adapter->stats.xonrxc += IXGB_READ_REG(&adapter->hw, XONRXC); in ixgb_update_stats()
1673 adapter->stats.xontxc += IXGB_READ_REG(&adapter->hw, XONTXC); in ixgb_update_stats()
1674 adapter->stats.xoffrxc += IXGB_READ_REG(&adapter->hw, XOFFRXC); in ixgb_update_stats()
1675 adapter->stats.xofftxc += IXGB_READ_REG(&adapter->hw, XOFFTXC); in ixgb_update_stats()
1676 adapter->stats.rjc += IXGB_READ_REG(&adapter->hw, RJC); in ixgb_update_stats()
1680 netdev->stats.rx_packets = adapter->stats.gprcl; in ixgb_update_stats()
1681 netdev->stats.tx_packets = adapter->stats.gptcl; in ixgb_update_stats()
1682 netdev->stats.rx_bytes = adapter->stats.gorcl; in ixgb_update_stats()
1683 netdev->stats.tx_bytes = adapter->stats.gotcl; in ixgb_update_stats()
1684 netdev->stats.multicast = adapter->stats.mprcl; in ixgb_update_stats()
1690 /* adapter->stats.rnbc + */ adapter->stats.crcerrs + in ixgb_update_stats()
1691 adapter->stats.ruc + in ixgb_update_stats()
1692 adapter->stats.roc /*+ adapter->stats.rlec */ + in ixgb_update_stats()
1693 adapter->stats.icbc + in ixgb_update_stats()
1694 adapter->stats.ecbc + adapter->stats.mpc; in ixgb_update_stats()
1697 * netdev->stats.rx_length_errors = adapter->stats.rlec; in ixgb_update_stats()
1700 netdev->stats.rx_crc_errors = adapter->stats.crcerrs; in ixgb_update_stats()
1701 netdev->stats.rx_fifo_errors = adapter->stats.mpc; in ixgb_update_stats()
1702 netdev->stats.rx_missed_errors = adapter->stats.mpc; in ixgb_update_stats()
1703 netdev->stats.rx_over_errors = adapter->stats.mpc; in ixgb_update_stats()
1725 struct ixgb_adapter *adapter = netdev_priv(netdev); in ixgb_intr() local
1726 struct ixgb_hw *hw = &adapter->hw; in ixgb_intr()
1733 if (!test_bit(__IXGB_DOWN, &adapter->flags)) in ixgb_intr()
1734 mod_timer(&adapter->watchdog_timer, jiffies); in ixgb_intr()
1736 if (napi_schedule_prep(&adapter->napi)) { in ixgb_intr()
1742 IXGB_WRITE_REG(&adapter->hw, IMC, ~0); in ixgb_intr()
1743 __napi_schedule(&adapter->napi); in ixgb_intr()
1757 struct ixgb_adapter *adapter = container_of(napi, struct ixgb_adapter, napi); in ixgb_clean() local
1760 ixgb_clean_tx_irq(adapter); in ixgb_clean()
1761 ixgb_clean_rx_irq(adapter, &work_done, budget); in ixgb_clean()
1766 if (!test_bit(__IXGB_DOWN, &adapter->flags)) in ixgb_clean()
1767 ixgb_irq_enable(adapter); in ixgb_clean()
1775 * @adapter: board private structure
1779 ixgb_clean_tx_irq(struct ixgb_adapter *adapter) in ixgb_clean_tx_irq() argument
1781 struct ixgb_desc_ring *tx_ring = &adapter->tx_ring; in ixgb_clean_tx_irq()
1782 struct net_device *netdev = adapter->netdev; in ixgb_clean_tx_irq()
1802 adapter->hw_csum_tx_good++; in ixgb_clean_tx_irq()
1804 ixgb_unmap_and_free_tx_resource(adapter, buffer_info); in ixgb_clean_tx_irq()
1825 !(test_bit(__IXGB_DOWN, &adapter->flags))) { in ixgb_clean_tx_irq()
1827 ++adapter->restart_queue; in ixgb_clean_tx_irq()
1831 if (adapter->detect_tx_hung) { in ixgb_clean_tx_irq()
1834 adapter->detect_tx_hung = false; in ixgb_clean_tx_irq()
1837 && !(IXGB_READ_REG(&adapter->hw, STATUS) & in ixgb_clean_tx_irq()
1840 netif_err(adapter, drv, adapter->netdev, in ixgb_clean_tx_irq()
1851 IXGB_READ_REG(&adapter->hw, TDH), in ixgb_clean_tx_irq()
1852 IXGB_READ_REG(&adapter->hw, TDT), in ixgb_clean_tx_irq()
1868 * @adapter: board private structure
1874 ixgb_rx_checksum(struct ixgb_adapter *adapter, in ixgb_rx_checksum() argument
1892 adapter->hw_csum_rx_error++; in ixgb_rx_checksum()
1896 adapter->hw_csum_rx_good++; in ixgb_rx_checksum()
1927 * @adapter: board private structure
1933 ixgb_clean_rx_irq(struct ixgb_adapter *adapter, int *work_done, int work_to_do) in ixgb_clean_rx_irq() argument
1935 struct ixgb_desc_ring *rx_ring = &adapter->rx_ring; in ixgb_clean_rx_irq()
1936 struct net_device *netdev = adapter->netdev; in ixgb_clean_rx_irq()
1937 struct pci_dev *pdev = adapter->pdev; in ixgb_clean_rx_irq()
2007 ixgb_check_copybreak(&adapter->napi, buffer_info, length, &skb); in ixgb_clean_rx_irq()
2013 ixgb_rx_checksum(adapter, rx_desc, skb); in ixgb_clean_rx_irq()
2028 ixgb_alloc_rx_buffers(adapter, cleaned_count); in ixgb_clean_rx_irq()
2041 ixgb_alloc_rx_buffers(adapter, cleaned_count); in ixgb_clean_rx_irq()
2048 * @adapter: address of board private structure
2053 ixgb_alloc_rx_buffers(struct ixgb_adapter *adapter, int cleaned_count) in ixgb_alloc_rx_buffers() argument
2055 struct ixgb_desc_ring *rx_ring = &adapter->rx_ring; in ixgb_alloc_rx_buffers()
2056 struct net_device *netdev = adapter->netdev; in ixgb_alloc_rx_buffers()
2057 struct pci_dev *pdev = adapter->pdev; in ixgb_alloc_rx_buffers()
2078 skb = netdev_alloc_skb_ip_align(netdev, adapter->rx_buffer_len); in ixgb_alloc_rx_buffers()
2081 adapter->alloc_rx_buff_failed++; in ixgb_alloc_rx_buffers()
2086 buffer_info->length = adapter->rx_buffer_len; in ixgb_alloc_rx_buffers()
2090 adapter->rx_buffer_len, in ixgb_alloc_rx_buffers()
2093 adapter->alloc_rx_buff_failed++; in ixgb_alloc_rx_buffers()
2120 IXGB_WRITE_REG(&adapter->hw, RDT, i); in ixgb_alloc_rx_buffers()
2125 ixgb_vlan_strip_enable(struct ixgb_adapter *adapter) in ixgb_vlan_strip_enable() argument
2130 ctrl = IXGB_READ_REG(&adapter->hw, CTRL0); in ixgb_vlan_strip_enable()
2132 IXGB_WRITE_REG(&adapter->hw, CTRL0, ctrl); in ixgb_vlan_strip_enable()
2136 ixgb_vlan_strip_disable(struct ixgb_adapter *adapter) in ixgb_vlan_strip_disable() argument
2141 ctrl = IXGB_READ_REG(&adapter->hw, CTRL0); in ixgb_vlan_strip_disable()
2143 IXGB_WRITE_REG(&adapter->hw, CTRL0, ctrl); in ixgb_vlan_strip_disable()
2149 struct ixgb_adapter *adapter = netdev_priv(netdev); in ixgb_vlan_rx_add_vid() local
2155 vfta = IXGB_READ_REG_ARRAY(&adapter->hw, VFTA, index); in ixgb_vlan_rx_add_vid()
2157 ixgb_write_vfta(&adapter->hw, index, vfta); in ixgb_vlan_rx_add_vid()
2158 set_bit(vid, adapter->active_vlans); in ixgb_vlan_rx_add_vid()
2166 struct ixgb_adapter *adapter = netdev_priv(netdev); in ixgb_vlan_rx_kill_vid() local
2172 vfta = IXGB_READ_REG_ARRAY(&adapter->hw, VFTA, index); in ixgb_vlan_rx_kill_vid()
2174 ixgb_write_vfta(&adapter->hw, index, vfta); in ixgb_vlan_rx_kill_vid()
2175 clear_bit(vid, adapter->active_vlans); in ixgb_vlan_rx_kill_vid()
2181 ixgb_restore_vlan(struct ixgb_adapter *adapter) in ixgb_restore_vlan() argument
2185 for_each_set_bit(vid, adapter->active_vlans, VLAN_N_VID) in ixgb_restore_vlan()
2186 ixgb_vlan_rx_add_vid(adapter->netdev, htons(ETH_P_8021Q), vid); in ixgb_restore_vlan()
2201 struct ixgb_adapter *adapter = netdev_priv(netdev); in ixgb_io_error_detected() local
2209 ixgb_down(adapter, true); in ixgb_io_error_detected()
2229 struct ixgb_adapter *adapter = netdev_priv(netdev); in ixgb_io_slot_reset() local
2232 netif_err(adapter, probe, adapter->netdev, in ixgb_io_slot_reset()
2245 ixgb_reset(adapter); in ixgb_io_slot_reset()
2248 if (!ixgb_validate_eeprom_checksum(&adapter->hw)) { in ixgb_io_slot_reset()
2249 netif_err(adapter, probe, adapter->netdev, in ixgb_io_slot_reset()
2253 ixgb_get_ee_mac_addr(&adapter->hw, netdev->dev_addr); in ixgb_io_slot_reset()
2257 netif_err(adapter, probe, adapter->netdev, in ixgb_io_slot_reset()
2276 struct ixgb_adapter *adapter = netdev_priv(netdev); in ixgb_io_resume() local
2281 if (ixgb_up(adapter)) { in ixgb_io_resume()
2288 mod_timer(&adapter->watchdog_timer, jiffies); in ixgb_io_resume()