Lines Matching refs:adapter

139 	struct igb_adapter *adapter = netdev_priv(netdev);  in igb_get_settings()  local
140 struct e1000_hw *hw = &adapter->hw; in igb_get_settings()
260 struct igb_adapter *adapter = netdev_priv(netdev); in igb_set_settings() local
261 struct e1000_hw *hw = &adapter->hw; in igb_set_settings()
267 dev_err(&adapter->pdev->dev, in igb_set_settings()
282 …dev_err(&adapter->pdev->dev, "forcing MDI/MDI-X state is not supported when link speed and/or dupl… in igb_set_settings()
287 while (test_and_set_bit(__IGB_RESETTING, &adapter->state)) in igb_set_settings()
296 switch (adapter->link_speed) { in igb_set_settings()
318 if (adapter->fc_autoneg) in igb_set_settings()
323 if (igb_set_spd_dplx(adapter, speed, ecmd->duplex)) { in igb_set_settings()
324 clear_bit(__IGB_RESETTING, &adapter->state); in igb_set_settings()
341 if (netif_running(adapter->netdev)) { in igb_set_settings()
342 igb_down(adapter); in igb_set_settings()
343 igb_up(adapter); in igb_set_settings()
345 igb_reset(adapter); in igb_set_settings()
347 clear_bit(__IGB_RESETTING, &adapter->state); in igb_set_settings()
353 struct igb_adapter *adapter = netdev_priv(netdev); in igb_get_link() local
354 struct e1000_mac_info *mac = &adapter->hw.mac; in igb_get_link()
365 return igb_has_link(adapter); in igb_get_link()
371 struct igb_adapter *adapter = netdev_priv(netdev); in igb_get_pauseparam() local
372 struct e1000_hw *hw = &adapter->hw; in igb_get_pauseparam()
375 (adapter->fc_autoneg ? AUTONEG_ENABLE : AUTONEG_DISABLE); in igb_get_pauseparam()
390 struct igb_adapter *adapter = netdev_priv(netdev); in igb_set_pauseparam() local
391 struct e1000_hw *hw = &adapter->hw; in igb_set_pauseparam()
398 adapter->fc_autoneg = pause->autoneg; in igb_set_pauseparam()
400 while (test_and_set_bit(__IGB_RESETTING, &adapter->state)) in igb_set_pauseparam()
403 if (adapter->fc_autoneg == AUTONEG_ENABLE) { in igb_set_pauseparam()
405 if (netif_running(adapter->netdev)) { in igb_set_pauseparam()
406 igb_down(adapter); in igb_set_pauseparam()
407 igb_up(adapter); in igb_set_pauseparam()
409 igb_reset(adapter); in igb_set_pauseparam()
427 clear_bit(__IGB_RESETTING, &adapter->state); in igb_set_pauseparam()
433 struct igb_adapter *adapter = netdev_priv(netdev); in igb_get_msglevel() local
434 return adapter->msg_enable; in igb_get_msglevel()
439 struct igb_adapter *adapter = netdev_priv(netdev); in igb_set_msglevel() local
440 adapter->msg_enable = data; in igb_set_msglevel()
452 struct igb_adapter *adapter = netdev_priv(netdev); in igb_get_regs() local
453 struct e1000_hw *hw = &adapter->hw; in igb_get_regs()
538 regs_buff[54] = adapter->stats.crcerrs; in igb_get_regs()
539 regs_buff[55] = adapter->stats.algnerrc; in igb_get_regs()
540 regs_buff[56] = adapter->stats.symerrs; in igb_get_regs()
541 regs_buff[57] = adapter->stats.rxerrc; in igb_get_regs()
542 regs_buff[58] = adapter->stats.mpc; in igb_get_regs()
543 regs_buff[59] = adapter->stats.scc; in igb_get_regs()
544 regs_buff[60] = adapter->stats.ecol; in igb_get_regs()
545 regs_buff[61] = adapter->stats.mcc; in igb_get_regs()
546 regs_buff[62] = adapter->stats.latecol; in igb_get_regs()
547 regs_buff[63] = adapter->stats.colc; in igb_get_regs()
548 regs_buff[64] = adapter->stats.dc; in igb_get_regs()
549 regs_buff[65] = adapter->stats.tncrs; in igb_get_regs()
550 regs_buff[66] = adapter->stats.sec; in igb_get_regs()
551 regs_buff[67] = adapter->stats.htdpmc; in igb_get_regs()
552 regs_buff[68] = adapter->stats.rlec; in igb_get_regs()
553 regs_buff[69] = adapter->stats.xonrxc; in igb_get_regs()
554 regs_buff[70] = adapter->stats.xontxc; in igb_get_regs()
555 regs_buff[71] = adapter->stats.xoffrxc; in igb_get_regs()
556 regs_buff[72] = adapter->stats.xofftxc; in igb_get_regs()
557 regs_buff[73] = adapter->stats.fcruc; in igb_get_regs()
558 regs_buff[74] = adapter->stats.prc64; in igb_get_regs()
559 regs_buff[75] = adapter->stats.prc127; in igb_get_regs()
560 regs_buff[76] = adapter->stats.prc255; in igb_get_regs()
561 regs_buff[77] = adapter->stats.prc511; in igb_get_regs()
562 regs_buff[78] = adapter->stats.prc1023; in igb_get_regs()
563 regs_buff[79] = adapter->stats.prc1522; in igb_get_regs()
564 regs_buff[80] = adapter->stats.gprc; in igb_get_regs()
565 regs_buff[81] = adapter->stats.bprc; in igb_get_regs()
566 regs_buff[82] = adapter->stats.mprc; in igb_get_regs()
567 regs_buff[83] = adapter->stats.gptc; in igb_get_regs()
568 regs_buff[84] = adapter->stats.gorc; in igb_get_regs()
569 regs_buff[86] = adapter->stats.gotc; in igb_get_regs()
570 regs_buff[88] = adapter->stats.rnbc; in igb_get_regs()
571 regs_buff[89] = adapter->stats.ruc; in igb_get_regs()
572 regs_buff[90] = adapter->stats.rfc; in igb_get_regs()
573 regs_buff[91] = adapter->stats.roc; in igb_get_regs()
574 regs_buff[92] = adapter->stats.rjc; in igb_get_regs()
575 regs_buff[93] = adapter->stats.mgprc; in igb_get_regs()
576 regs_buff[94] = adapter->stats.mgpdc; in igb_get_regs()
577 regs_buff[95] = adapter->stats.mgptc; in igb_get_regs()
578 regs_buff[96] = adapter->stats.tor; in igb_get_regs()
579 regs_buff[98] = adapter->stats.tot; in igb_get_regs()
580 regs_buff[100] = adapter->stats.tpr; in igb_get_regs()
581 regs_buff[101] = adapter->stats.tpt; in igb_get_regs()
582 regs_buff[102] = adapter->stats.ptc64; in igb_get_regs()
583 regs_buff[103] = adapter->stats.ptc127; in igb_get_regs()
584 regs_buff[104] = adapter->stats.ptc255; in igb_get_regs()
585 regs_buff[105] = adapter->stats.ptc511; in igb_get_regs()
586 regs_buff[106] = adapter->stats.ptc1023; in igb_get_regs()
587 regs_buff[107] = adapter->stats.ptc1522; in igb_get_regs()
588 regs_buff[108] = adapter->stats.mptc; in igb_get_regs()
589 regs_buff[109] = adapter->stats.bptc; in igb_get_regs()
590 regs_buff[110] = adapter->stats.tsctc; in igb_get_regs()
591 regs_buff[111] = adapter->stats.iac; in igb_get_regs()
592 regs_buff[112] = adapter->stats.rpthc; in igb_get_regs()
593 regs_buff[113] = adapter->stats.hgptc; in igb_get_regs()
594 regs_buff[114] = adapter->stats.hgorc; in igb_get_regs()
595 regs_buff[116] = adapter->stats.hgotc; in igb_get_regs()
596 regs_buff[118] = adapter->stats.lenerrs; in igb_get_regs()
597 regs_buff[119] = adapter->stats.scvpc; in igb_get_regs()
598 regs_buff[120] = adapter->stats.hrmpc; in igb_get_regs()
666 regs_buff[551] = adapter->stats.o2bgptc; in igb_get_regs()
667 regs_buff[552] = adapter->stats.b2ospc; in igb_get_regs()
668 regs_buff[553] = adapter->stats.o2bspc; in igb_get_regs()
669 regs_buff[554] = adapter->stats.b2ogprc; in igb_get_regs()
711 struct igb_adapter *adapter = netdev_priv(netdev); in igb_get_eeprom_len() local
712 return adapter->hw.nvm.word_size * 2; in igb_get_eeprom_len()
718 struct igb_adapter *adapter = netdev_priv(netdev); in igb_get_eeprom() local
719 struct e1000_hw *hw = &adapter->hw; in igb_get_eeprom()
765 struct igb_adapter *adapter = netdev_priv(netdev); in igb_set_eeprom() local
766 struct e1000_hw *hw = &adapter->hw; in igb_set_eeprom()
825 igb_set_fw_version(adapter); in igb_set_eeprom()
833 struct igb_adapter *adapter = netdev_priv(netdev); in igb_get_drvinfo() local
841 strlcpy(drvinfo->fw_version, adapter->fw_version, in igb_get_drvinfo()
843 strlcpy(drvinfo->bus_info, pci_name(adapter->pdev), in igb_get_drvinfo()
854 struct igb_adapter *adapter = netdev_priv(netdev); in igb_get_ringparam() local
858 ring->rx_pending = adapter->rx_ring_count; in igb_get_ringparam()
859 ring->tx_pending = adapter->tx_ring_count; in igb_get_ringparam()
865 struct igb_adapter *adapter = netdev_priv(netdev); in igb_set_ringparam() local
881 if ((new_tx_count == adapter->tx_ring_count) && in igb_set_ringparam()
882 (new_rx_count == adapter->rx_ring_count)) { in igb_set_ringparam()
887 while (test_and_set_bit(__IGB_RESETTING, &adapter->state)) in igb_set_ringparam()
890 if (!netif_running(adapter->netdev)) { in igb_set_ringparam()
891 for (i = 0; i < adapter->num_tx_queues; i++) in igb_set_ringparam()
892 adapter->tx_ring[i]->count = new_tx_count; in igb_set_ringparam()
893 for (i = 0; i < adapter->num_rx_queues; i++) in igb_set_ringparam()
894 adapter->rx_ring[i]->count = new_rx_count; in igb_set_ringparam()
895 adapter->tx_ring_count = new_tx_count; in igb_set_ringparam()
896 adapter->rx_ring_count = new_rx_count; in igb_set_ringparam()
900 if (adapter->num_tx_queues > adapter->num_rx_queues) in igb_set_ringparam()
901 temp_ring = vmalloc(adapter->num_tx_queues * in igb_set_ringparam()
904 temp_ring = vmalloc(adapter->num_rx_queues * in igb_set_ringparam()
912 igb_down(adapter); in igb_set_ringparam()
918 if (new_tx_count != adapter->tx_ring_count) { in igb_set_ringparam()
919 for (i = 0; i < adapter->num_tx_queues; i++) { in igb_set_ringparam()
920 memcpy(&temp_ring[i], adapter->tx_ring[i], in igb_set_ringparam()
934 for (i = 0; i < adapter->num_tx_queues; i++) { in igb_set_ringparam()
935 igb_free_tx_resources(adapter->tx_ring[i]); in igb_set_ringparam()
937 memcpy(adapter->tx_ring[i], &temp_ring[i], in igb_set_ringparam()
941 adapter->tx_ring_count = new_tx_count; in igb_set_ringparam()
944 if (new_rx_count != adapter->rx_ring_count) { in igb_set_ringparam()
945 for (i = 0; i < adapter->num_rx_queues; i++) { in igb_set_ringparam()
946 memcpy(&temp_ring[i], adapter->rx_ring[i], in igb_set_ringparam()
961 for (i = 0; i < adapter->num_rx_queues; i++) { in igb_set_ringparam()
962 igb_free_rx_resources(adapter->rx_ring[i]); in igb_set_ringparam()
964 memcpy(adapter->rx_ring[i], &temp_ring[i], in igb_set_ringparam()
968 adapter->rx_ring_count = new_rx_count; in igb_set_ringparam()
971 igb_up(adapter); in igb_set_ringparam()
974 clear_bit(__IGB_RESETTING, &adapter->state); in igb_set_ringparam()
1196 static bool reg_pattern_test(struct igb_adapter *adapter, u64 *data, in reg_pattern_test() argument
1199 struct e1000_hw *hw = &adapter->hw; in reg_pattern_test()
1207 dev_err(&adapter->pdev->dev, in reg_pattern_test()
1218 static bool reg_set_and_check(struct igb_adapter *adapter, u64 *data, in reg_set_and_check() argument
1221 struct e1000_hw *hw = &adapter->hw; in reg_set_and_check()
1227 dev_err(&adapter->pdev->dev, in reg_set_and_check()
1239 if (reg_pattern_test(adapter, data, reg, mask, write)) \
1245 if (reg_set_and_check(adapter, data, reg, mask, write)) \
1249 static int igb_reg_test(struct igb_adapter *adapter, u64 *data) in igb_reg_test() argument
1251 struct e1000_hw *hw = &adapter->hw; in igb_reg_test()
1256 switch (adapter->hw.mac.type) { in igb_reg_test()
1291 dev_err(&adapter->pdev->dev, in igb_reg_test()
1320 (adapter->hw.hw_addr + test->reg) in igb_reg_test()
1347 static int igb_eeprom_test(struct igb_adapter *adapter, u64 *data) in igb_eeprom_test() argument
1349 struct e1000_hw *hw = &adapter->hw; in igb_eeprom_test()
1358 if (adapter->hw.nvm.ops.validate(&adapter->hw) < 0) in igb_eeprom_test()
1363 if (adapter->hw.nvm.ops.validate(&adapter->hw) < 0) in igb_eeprom_test()
1373 struct igb_adapter *adapter = (struct igb_adapter *) data; in igb_test_intr() local
1374 struct e1000_hw *hw = &adapter->hw; in igb_test_intr()
1376 adapter->test_icr |= rd32(E1000_ICR); in igb_test_intr()
1381 static int igb_intr_test(struct igb_adapter *adapter, u64 *data) in igb_intr_test() argument
1383 struct e1000_hw *hw = &adapter->hw; in igb_intr_test()
1384 struct net_device *netdev = adapter->netdev; in igb_intr_test()
1386 u32 irq = adapter->pdev->irq; in igb_intr_test()
1391 if (adapter->flags & IGB_FLAG_HAS_MSIX) { in igb_intr_test()
1392 if (request_irq(adapter->msix_entries[0].vector, in igb_intr_test()
1393 igb_test_intr, 0, netdev->name, adapter)) { in igb_intr_test()
1397 } else if (adapter->flags & IGB_FLAG_HAS_MSI) { in igb_intr_test()
1400 igb_test_intr, 0, netdev->name, adapter)) { in igb_intr_test()
1405 netdev->name, adapter)) { in igb_intr_test()
1408 netdev->name, adapter)) { in igb_intr_test()
1412 dev_info(&adapter->pdev->dev, "testing %s interrupt\n", in igb_intr_test()
1457 adapter->test_icr = 0; in igb_intr_test()
1467 if (adapter->test_icr & mask) { in igb_intr_test()
1479 adapter->test_icr = 0; in igb_intr_test()
1489 if (!(adapter->test_icr & mask)) { in igb_intr_test()
1501 adapter->test_icr = 0; in igb_intr_test()
1511 if (adapter->test_icr & mask) { in igb_intr_test()
1524 if (adapter->flags & IGB_FLAG_HAS_MSIX) in igb_intr_test()
1525 free_irq(adapter->msix_entries[0].vector, adapter); in igb_intr_test()
1527 free_irq(irq, adapter); in igb_intr_test()
1532 static void igb_free_desc_rings(struct igb_adapter *adapter) in igb_free_desc_rings() argument
1534 igb_free_tx_resources(&adapter->test_tx_ring); in igb_free_desc_rings()
1535 igb_free_rx_resources(&adapter->test_rx_ring); in igb_free_desc_rings()
1538 static int igb_setup_desc_rings(struct igb_adapter *adapter) in igb_setup_desc_rings() argument
1540 struct igb_ring *tx_ring = &adapter->test_tx_ring; in igb_setup_desc_rings()
1541 struct igb_ring *rx_ring = &adapter->test_rx_ring; in igb_setup_desc_rings()
1542 struct e1000_hw *hw = &adapter->hw; in igb_setup_desc_rings()
1547 tx_ring->dev = &adapter->pdev->dev; in igb_setup_desc_rings()
1548 tx_ring->netdev = adapter->netdev; in igb_setup_desc_rings()
1549 tx_ring->reg_idx = adapter->vfs_allocated_count; in igb_setup_desc_rings()
1556 igb_setup_tctl(adapter); in igb_setup_desc_rings()
1557 igb_configure_tx_ring(adapter, tx_ring); in igb_setup_desc_rings()
1561 rx_ring->dev = &adapter->pdev->dev; in igb_setup_desc_rings()
1562 rx_ring->netdev = adapter->netdev; in igb_setup_desc_rings()
1563 rx_ring->reg_idx = adapter->vfs_allocated_count; in igb_setup_desc_rings()
1571 wr32(E1000_MRQC, adapter->vfs_allocated_count << 3); in igb_setup_desc_rings()
1574 igb_setup_rctl(adapter); in igb_setup_desc_rings()
1575 igb_configure_rx_ring(adapter, rx_ring); in igb_setup_desc_rings()
1582 igb_free_desc_rings(adapter); in igb_setup_desc_rings()
1586 static void igb_phy_disable_receiver(struct igb_adapter *adapter) in igb_phy_disable_receiver() argument
1588 struct e1000_hw *hw = &adapter->hw; in igb_phy_disable_receiver()
1597 static int igb_integrated_phy_loopback(struct igb_adapter *adapter) in igb_integrated_phy_loopback() argument
1599 struct e1000_hw *hw = &adapter->hw; in igb_integrated_phy_loopback()
1646 igb_phy_disable_receiver(adapter); in igb_integrated_phy_loopback()
1652 static int igb_set_phy_loopback(struct igb_adapter *adapter) in igb_set_phy_loopback() argument
1654 return igb_integrated_phy_loopback(adapter); in igb_set_phy_loopback()
1657 static int igb_setup_loopback_test(struct igb_adapter *adapter) in igb_setup_loopback_test() argument
1659 struct e1000_hw *hw = &adapter->hw; in igb_setup_loopback_test()
1724 return igb_set_phy_loopback(adapter); in igb_setup_loopback_test()
1727 static void igb_loopback_cleanup(struct igb_adapter *adapter) in igb_loopback_cleanup() argument
1729 struct e1000_hw *hw = &adapter->hw; in igb_loopback_cleanup()
1854 static int igb_run_loopback_test(struct igb_adapter *adapter) in igb_run_loopback_test() argument
1856 struct igb_ring *tx_ring = &adapter->test_tx_ring; in igb_run_loopback_test()
1857 struct igb_ring *rx_ring = &adapter->test_rx_ring; in igb_run_loopback_test()
1916 static int igb_loopback_test(struct igb_adapter *adapter, u64 *data) in igb_loopback_test() argument
1921 if (igb_check_reset_block(&adapter->hw)) { in igb_loopback_test()
1922 dev_err(&adapter->pdev->dev, in igb_loopback_test()
1928 if (adapter->hw.mac.type == e1000_i354) { in igb_loopback_test()
1929 dev_info(&adapter->pdev->dev, in igb_loopback_test()
1934 *data = igb_setup_desc_rings(adapter); in igb_loopback_test()
1937 *data = igb_setup_loopback_test(adapter); in igb_loopback_test()
1940 *data = igb_run_loopback_test(adapter); in igb_loopback_test()
1941 igb_loopback_cleanup(adapter); in igb_loopback_test()
1944 igb_free_desc_rings(adapter); in igb_loopback_test()
1949 static int igb_link_test(struct igb_adapter *adapter, u64 *data) in igb_link_test() argument
1951 struct e1000_hw *hw = &adapter->hw; in igb_link_test()
1962 hw->mac.ops.check_for_link(&adapter->hw); in igb_link_test()
1970 hw->mac.ops.check_for_link(&adapter->hw); in igb_link_test()
1983 struct igb_adapter *adapter = netdev_priv(netdev); in igb_diag_test() local
1988 set_bit(__IGB_TESTING, &adapter->state); in igb_diag_test()
1991 if (adapter->hw.dev_spec._82575.mas_capable) in igb_diag_test()
1997 autoneg_advertised = adapter->hw.phy.autoneg_advertised; in igb_diag_test()
1998 forced_speed_duplex = adapter->hw.mac.forced_speed_duplex; in igb_diag_test()
1999 autoneg = adapter->hw.mac.autoneg; in igb_diag_test()
2001 dev_info(&adapter->pdev->dev, "offline testing starting\n"); in igb_diag_test()
2004 igb_power_up_link(adapter); in igb_diag_test()
2009 if (igb_link_test(adapter, &data[4])) in igb_diag_test()
2016 igb_reset(adapter); in igb_diag_test()
2018 if (igb_reg_test(adapter, &data[0])) in igb_diag_test()
2021 igb_reset(adapter); in igb_diag_test()
2022 if (igb_eeprom_test(adapter, &data[1])) in igb_diag_test()
2025 igb_reset(adapter); in igb_diag_test()
2026 if (igb_intr_test(adapter, &data[2])) in igb_diag_test()
2029 igb_reset(adapter); in igb_diag_test()
2031 igb_power_up_link(adapter); in igb_diag_test()
2032 if (igb_loopback_test(adapter, &data[3])) in igb_diag_test()
2036 adapter->hw.phy.autoneg_advertised = autoneg_advertised; in igb_diag_test()
2037 adapter->hw.mac.forced_speed_duplex = forced_speed_duplex; in igb_diag_test()
2038 adapter->hw.mac.autoneg = autoneg; in igb_diag_test()
2041 adapter->hw.phy.autoneg_wait_to_complete = true; in igb_diag_test()
2042 igb_reset(adapter); in igb_diag_test()
2043 adapter->hw.phy.autoneg_wait_to_complete = false; in igb_diag_test()
2045 clear_bit(__IGB_TESTING, &adapter->state); in igb_diag_test()
2049 dev_info(&adapter->pdev->dev, "online testing starting\n"); in igb_diag_test()
2052 if (if_running && igb_link_test(adapter, &data[4])) in igb_diag_test()
2063 clear_bit(__IGB_TESTING, &adapter->state); in igb_diag_test()
2070 struct igb_adapter *adapter = netdev_priv(netdev); in igb_get_wol() local
2074 if (!(adapter->flags & IGB_FLAG_WOL_SUPPORTED)) in igb_get_wol()
2082 switch (adapter->hw.device_id) { in igb_get_wol()
2087 if (adapter->wol & E1000_WUFC_EX) in igb_get_wol()
2089 if (adapter->wol & E1000_WUFC_MC) in igb_get_wol()
2091 if (adapter->wol & E1000_WUFC_BC) in igb_get_wol()
2093 if (adapter->wol & E1000_WUFC_MAG) in igb_get_wol()
2095 if (adapter->wol & E1000_WUFC_LNKC) in igb_get_wol()
2101 struct igb_adapter *adapter = netdev_priv(netdev); in igb_set_wol() local
2106 if (!(adapter->flags & IGB_FLAG_WOL_SUPPORTED)) in igb_set_wol()
2110 adapter->wol = 0; in igb_set_wol()
2113 adapter->wol |= E1000_WUFC_EX; in igb_set_wol()
2115 adapter->wol |= E1000_WUFC_MC; in igb_set_wol()
2117 adapter->wol |= E1000_WUFC_BC; in igb_set_wol()
2119 adapter->wol |= E1000_WUFC_MAG; in igb_set_wol()
2121 adapter->wol |= E1000_WUFC_LNKC; in igb_set_wol()
2122 device_set_wakeup_enable(&adapter->pdev->dev, adapter->wol); in igb_set_wol()
2133 struct igb_adapter *adapter = netdev_priv(netdev); in igb_set_phys_id() local
2134 struct e1000_hw *hw = &adapter->hw; in igb_set_phys_id()
2148 clear_bit(IGB_LED_ON, &adapter->led_status); in igb_set_phys_id()
2159 struct igb_adapter *adapter = netdev_priv(netdev); in igb_set_coalesce() local
2174 if ((adapter->flags & IGB_FLAG_QUEUE_PAIRS) && ec->tx_coalesce_usecs) in igb_set_coalesce()
2179 if (adapter->flags & IGB_FLAG_DMAC) in igb_set_coalesce()
2180 adapter->flags &= ~IGB_FLAG_DMAC; in igb_set_coalesce()
2185 adapter->rx_itr_setting = ec->rx_coalesce_usecs; in igb_set_coalesce()
2187 adapter->rx_itr_setting = ec->rx_coalesce_usecs << 2; in igb_set_coalesce()
2190 if (adapter->flags & IGB_FLAG_QUEUE_PAIRS) in igb_set_coalesce()
2191 adapter->tx_itr_setting = adapter->rx_itr_setting; in igb_set_coalesce()
2193 adapter->tx_itr_setting = ec->tx_coalesce_usecs; in igb_set_coalesce()
2195 adapter->tx_itr_setting = ec->tx_coalesce_usecs << 2; in igb_set_coalesce()
2197 for (i = 0; i < adapter->num_q_vectors; i++) { in igb_set_coalesce()
2198 struct igb_q_vector *q_vector = adapter->q_vector[i]; in igb_set_coalesce()
2199 q_vector->tx.work_limit = adapter->tx_work_limit; in igb_set_coalesce()
2201 q_vector->itr_val = adapter->rx_itr_setting; in igb_set_coalesce()
2203 q_vector->itr_val = adapter->tx_itr_setting; in igb_set_coalesce()
2215 struct igb_adapter *adapter = netdev_priv(netdev); in igb_get_coalesce() local
2217 if (adapter->rx_itr_setting <= 3) in igb_get_coalesce()
2218 ec->rx_coalesce_usecs = adapter->rx_itr_setting; in igb_get_coalesce()
2220 ec->rx_coalesce_usecs = adapter->rx_itr_setting >> 2; in igb_get_coalesce()
2222 if (!(adapter->flags & IGB_FLAG_QUEUE_PAIRS)) { in igb_get_coalesce()
2223 if (adapter->tx_itr_setting <= 3) in igb_get_coalesce()
2224 ec->tx_coalesce_usecs = adapter->tx_itr_setting; in igb_get_coalesce()
2226 ec->tx_coalesce_usecs = adapter->tx_itr_setting >> 2; in igb_get_coalesce()
2234 struct igb_adapter *adapter = netdev_priv(netdev); in igb_nway_reset() local
2236 igb_reinit_locked(adapter); in igb_nway_reset()
2255 struct igb_adapter *adapter = netdev_priv(netdev); in igb_get_ethtool_stats() local
2256 struct rtnl_link_stats64 *net_stats = &adapter->stats64; in igb_get_ethtool_stats()
2262 spin_lock(&adapter->stats64_lock); in igb_get_ethtool_stats()
2263 igb_update_stats(adapter, net_stats); in igb_get_ethtool_stats()
2266 p = (char *)adapter + igb_gstrings_stats[i].stat_offset; in igb_get_ethtool_stats()
2275 for (j = 0; j < adapter->num_tx_queues; j++) { in igb_get_ethtool_stats()
2278 ring = adapter->tx_ring[j]; in igb_get_ethtool_stats()
2293 for (j = 0; j < adapter->num_rx_queues; j++) { in igb_get_ethtool_stats()
2294 ring = adapter->rx_ring[j]; in igb_get_ethtool_stats()
2305 spin_unlock(&adapter->stats64_lock); in igb_get_ethtool_stats()
2310 struct igb_adapter *adapter = netdev_priv(netdev); in igb_get_strings() local
2330 for (i = 0; i < adapter->num_tx_queues; i++) { in igb_get_strings()
2338 for (i = 0; i < adapter->num_rx_queues; i++) { in igb_get_strings()
2358 struct igb_adapter *adapter = netdev_priv(dev); in igb_get_ts_info() local
2360 if (adapter->ptp_clock) in igb_get_ts_info()
2361 info->phc_index = ptp_clock_index(adapter->ptp_clock); in igb_get_ts_info()
2365 switch (adapter->hw.mac.type) { in igb_get_ts_info()
2393 if (adapter->hw.mac.type >= e1000_82580) in igb_get_ts_info()
2411 static int igb_get_rss_hash_opts(struct igb_adapter *adapter, in igb_get_rss_hash_opts() argument
2422 if (adapter->flags & IGB_FLAG_RSS_FIELD_IPV4_UDP) in igb_get_rss_hash_opts()
2436 if (adapter->flags & IGB_FLAG_RSS_FIELD_IPV6_UDP) in igb_get_rss_hash_opts()
2456 struct igb_adapter *adapter = netdev_priv(dev); in igb_get_rxnfc() local
2461 cmd->data = adapter->num_rx_queues; in igb_get_rxnfc()
2465 ret = igb_get_rss_hash_opts(adapter, cmd); in igb_get_rxnfc()
2476 static int igb_set_rss_hash_opt(struct igb_adapter *adapter, in igb_set_rss_hash_opt() argument
2479 u32 flags = adapter->flags; in igb_set_rss_hash_opt()
2546 if (flags != adapter->flags) { in igb_set_rss_hash_opt()
2547 struct e1000_hw *hw = &adapter->hw; in igb_set_rss_hash_opt()
2551 !(adapter->flags & UDP_RSS_FLAGS)) in igb_set_rss_hash_opt()
2552 dev_err(&adapter->pdev->dev, in igb_set_rss_hash_opt()
2555 adapter->flags = flags; in igb_set_rss_hash_opt()
2580 struct igb_adapter *adapter = netdev_priv(dev); in igb_set_rxnfc() local
2585 ret = igb_set_rss_hash_opt(adapter, cmd); in igb_set_rxnfc()
2596 struct igb_adapter *adapter = netdev_priv(netdev); in igb_get_eee() local
2597 struct e1000_hw *hw = &adapter->hw; in igb_get_eee()
2609 mmd_eee_adv_to_ethtool_adv_t(adapter->eee_advert); in igb_get_eee()
2662 if (adapter->link_duplex == HALF_DUPLEX) { in igb_get_eee()
2675 struct igb_adapter *adapter = netdev_priv(netdev); in igb_set_eee() local
2676 struct e1000_hw *hw = &adapter->hw; in igb_set_eee()
2693 dev_err(&adapter->pdev->dev, in igb_set_eee()
2700 dev_err(&adapter->pdev->dev, in igb_set_eee()
2707 dev_err(&adapter->pdev->dev, in igb_set_eee()
2715 dev_err(&adapter->pdev->dev, in igb_set_eee()
2720 adapter->eee_advert = ethtool_adv_to_mmd_eee_adv_t(edata->advertised); in igb_set_eee()
2723 adapter->flags |= IGB_FLAG_EEE; in igb_set_eee()
2727 igb_reinit_locked(adapter); in igb_set_eee()
2729 igb_reset(adapter); in igb_set_eee()
2738 dev_err(&adapter->pdev->dev, in igb_set_eee()
2749 struct igb_adapter *adapter = netdev_priv(netdev); in igb_get_module_info() local
2750 struct e1000_hw *hw = &adapter->hw; in igb_get_module_info()
2791 struct igb_adapter *adapter = netdev_priv(netdev); in igb_get_module_eeprom() local
2792 struct e1000_hw *hw = &adapter->hw; in igb_get_module_eeprom()
2829 struct igb_adapter *adapter = netdev_priv(netdev); in igb_ethtool_begin() local
2830 pm_runtime_get_sync(&adapter->pdev->dev); in igb_ethtool_begin()
2836 struct igb_adapter *adapter = netdev_priv(netdev); in igb_ethtool_complete() local
2837 pm_runtime_put(&adapter->pdev->dev); in igb_ethtool_complete()
2848 struct igb_adapter *adapter = netdev_priv(netdev); in igb_get_rxfh() local
2856 indir[i] = adapter->rss_indir_tbl[i]; in igb_get_rxfh()
2861 void igb_write_rss_indir_tbl(struct igb_adapter *adapter) in igb_write_rss_indir_tbl() argument
2863 struct e1000_hw *hw = &adapter->hw; in igb_write_rss_indir_tbl()
2874 if (adapter->vfs_allocated_count) in igb_write_rss_indir_tbl()
2887 val |= adapter->rss_indir_tbl[i + j]; in igb_write_rss_indir_tbl()
2899 struct igb_adapter *adapter = netdev_priv(netdev); in igb_set_rxfh() local
2900 struct e1000_hw *hw = &adapter->hw; in igb_set_rxfh()
2911 num_queues = adapter->rss_queues; in igb_set_rxfh()
2916 if (adapter->vfs_allocated_count) in igb_set_rxfh()
2930 adapter->rss_indir_tbl[i] = indir[i]; in igb_set_rxfh()
2932 igb_write_rss_indir_tbl(adapter); in igb_set_rxfh()
2937 static unsigned int igb_max_channels(struct igb_adapter *adapter) in igb_max_channels() argument
2939 struct e1000_hw *hw = &adapter->hw; in igb_max_channels()
2951 if (!!adapter->vfs_allocated_count) { in igb_max_channels()
2957 if (!!adapter->vfs_allocated_count) { in igb_max_channels()
2975 struct igb_adapter *adapter = netdev_priv(netdev); in igb_get_channels() local
2978 ch->max_combined = igb_max_channels(adapter); in igb_get_channels()
2981 if (adapter->flags & IGB_FLAG_HAS_MSIX) { in igb_get_channels()
2986 ch->combined_count = adapter->rss_queues; in igb_get_channels()
2992 struct igb_adapter *adapter = netdev_priv(netdev); in igb_set_channels() local
3005 max_combined = igb_max_channels(adapter); in igb_set_channels()
3009 if (count != adapter->rss_queues) { in igb_set_channels()
3010 adapter->rss_queues = count; in igb_set_channels()
3011 igb_set_flag_queue_pairs(adapter, max_combined); in igb_set_channels()
3016 return igb_reinit_queues(adapter); in igb_set_channels()