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()
850 struct igb_adapter *adapter = netdev_priv(netdev); in igb_get_ringparam() local
854 ring->rx_pending = adapter->rx_ring_count; in igb_get_ringparam()
855 ring->tx_pending = adapter->tx_ring_count; in igb_get_ringparam()
861 struct igb_adapter *adapter = netdev_priv(netdev); in igb_set_ringparam() local
877 if ((new_tx_count == adapter->tx_ring_count) && in igb_set_ringparam()
878 (new_rx_count == adapter->rx_ring_count)) { in igb_set_ringparam()
883 while (test_and_set_bit(__IGB_RESETTING, &adapter->state)) in igb_set_ringparam()
886 if (!netif_running(adapter->netdev)) { in igb_set_ringparam()
887 for (i = 0; i < adapter->num_tx_queues; i++) in igb_set_ringparam()
888 adapter->tx_ring[i]->count = new_tx_count; in igb_set_ringparam()
889 for (i = 0; i < adapter->num_rx_queues; i++) in igb_set_ringparam()
890 adapter->rx_ring[i]->count = new_rx_count; in igb_set_ringparam()
891 adapter->tx_ring_count = new_tx_count; in igb_set_ringparam()
892 adapter->rx_ring_count = new_rx_count; in igb_set_ringparam()
896 if (adapter->num_tx_queues > adapter->num_rx_queues) in igb_set_ringparam()
897 temp_ring = vmalloc(adapter->num_tx_queues * in igb_set_ringparam()
900 temp_ring = vmalloc(adapter->num_rx_queues * in igb_set_ringparam()
908 igb_down(adapter); in igb_set_ringparam()
914 if (new_tx_count != adapter->tx_ring_count) { in igb_set_ringparam()
915 for (i = 0; i < adapter->num_tx_queues; i++) { in igb_set_ringparam()
916 memcpy(&temp_ring[i], adapter->tx_ring[i], in igb_set_ringparam()
930 for (i = 0; i < adapter->num_tx_queues; i++) { in igb_set_ringparam()
931 igb_free_tx_resources(adapter->tx_ring[i]); in igb_set_ringparam()
933 memcpy(adapter->tx_ring[i], &temp_ring[i], in igb_set_ringparam()
937 adapter->tx_ring_count = new_tx_count; in igb_set_ringparam()
940 if (new_rx_count != adapter->rx_ring_count) { in igb_set_ringparam()
941 for (i = 0; i < adapter->num_rx_queues; i++) { in igb_set_ringparam()
942 memcpy(&temp_ring[i], adapter->rx_ring[i], in igb_set_ringparam()
957 for (i = 0; i < adapter->num_rx_queues; i++) { in igb_set_ringparam()
958 igb_free_rx_resources(adapter->rx_ring[i]); in igb_set_ringparam()
960 memcpy(adapter->rx_ring[i], &temp_ring[i], in igb_set_ringparam()
964 adapter->rx_ring_count = new_rx_count; in igb_set_ringparam()
967 igb_up(adapter); in igb_set_ringparam()
970 clear_bit(__IGB_RESETTING, &adapter->state); in igb_set_ringparam()
1192 static bool reg_pattern_test(struct igb_adapter *adapter, u64 *data, in reg_pattern_test() argument
1195 struct e1000_hw *hw = &adapter->hw; in reg_pattern_test()
1203 dev_err(&adapter->pdev->dev, in reg_pattern_test()
1214 static bool reg_set_and_check(struct igb_adapter *adapter, u64 *data, in reg_set_and_check() argument
1217 struct e1000_hw *hw = &adapter->hw; in reg_set_and_check()
1223 dev_err(&adapter->pdev->dev, in reg_set_and_check()
1235 if (reg_pattern_test(adapter, data, reg, mask, write)) \
1241 if (reg_set_and_check(adapter, data, reg, mask, write)) \
1245 static int igb_reg_test(struct igb_adapter *adapter, u64 *data) in igb_reg_test() argument
1247 struct e1000_hw *hw = &adapter->hw; in igb_reg_test()
1252 switch (adapter->hw.mac.type) { in igb_reg_test()
1287 dev_err(&adapter->pdev->dev, in igb_reg_test()
1316 (adapter->hw.hw_addr + test->reg) in igb_reg_test()
1343 static int igb_eeprom_test(struct igb_adapter *adapter, u64 *data) in igb_eeprom_test() argument
1345 struct e1000_hw *hw = &adapter->hw; in igb_eeprom_test()
1354 if (adapter->hw.nvm.ops.validate(&adapter->hw) < 0) in igb_eeprom_test()
1359 if (adapter->hw.nvm.ops.validate(&adapter->hw) < 0) in igb_eeprom_test()
1369 struct igb_adapter *adapter = (struct igb_adapter *) data; in igb_test_intr() local
1370 struct e1000_hw *hw = &adapter->hw; in igb_test_intr()
1372 adapter->test_icr |= rd32(E1000_ICR); in igb_test_intr()
1377 static int igb_intr_test(struct igb_adapter *adapter, u64 *data) in igb_intr_test() argument
1379 struct e1000_hw *hw = &adapter->hw; in igb_intr_test()
1380 struct net_device *netdev = adapter->netdev; in igb_intr_test()
1382 u32 irq = adapter->pdev->irq; in igb_intr_test()
1387 if (adapter->flags & IGB_FLAG_HAS_MSIX) { in igb_intr_test()
1388 if (request_irq(adapter->msix_entries[0].vector, in igb_intr_test()
1389 igb_test_intr, 0, netdev->name, adapter)) { in igb_intr_test()
1393 } else if (adapter->flags & IGB_FLAG_HAS_MSI) { in igb_intr_test()
1396 igb_test_intr, 0, netdev->name, adapter)) { in igb_intr_test()
1401 netdev->name, adapter)) { in igb_intr_test()
1404 netdev->name, adapter)) { in igb_intr_test()
1408 dev_info(&adapter->pdev->dev, "testing %s interrupt\n", in igb_intr_test()
1453 adapter->test_icr = 0; in igb_intr_test()
1463 if (adapter->test_icr & mask) { in igb_intr_test()
1475 adapter->test_icr = 0; in igb_intr_test()
1485 if (!(adapter->test_icr & mask)) { in igb_intr_test()
1497 adapter->test_icr = 0; in igb_intr_test()
1507 if (adapter->test_icr & mask) { in igb_intr_test()
1520 if (adapter->flags & IGB_FLAG_HAS_MSIX) in igb_intr_test()
1521 free_irq(adapter->msix_entries[0].vector, adapter); in igb_intr_test()
1523 free_irq(irq, adapter); in igb_intr_test()
1528 static void igb_free_desc_rings(struct igb_adapter *adapter) in igb_free_desc_rings() argument
1530 igb_free_tx_resources(&adapter->test_tx_ring); in igb_free_desc_rings()
1531 igb_free_rx_resources(&adapter->test_rx_ring); in igb_free_desc_rings()
1534 static int igb_setup_desc_rings(struct igb_adapter *adapter) in igb_setup_desc_rings() argument
1536 struct igb_ring *tx_ring = &adapter->test_tx_ring; in igb_setup_desc_rings()
1537 struct igb_ring *rx_ring = &adapter->test_rx_ring; in igb_setup_desc_rings()
1538 struct e1000_hw *hw = &adapter->hw; in igb_setup_desc_rings()
1543 tx_ring->dev = &adapter->pdev->dev; in igb_setup_desc_rings()
1544 tx_ring->netdev = adapter->netdev; in igb_setup_desc_rings()
1545 tx_ring->reg_idx = adapter->vfs_allocated_count; in igb_setup_desc_rings()
1552 igb_setup_tctl(adapter); in igb_setup_desc_rings()
1553 igb_configure_tx_ring(adapter, tx_ring); in igb_setup_desc_rings()
1557 rx_ring->dev = &adapter->pdev->dev; in igb_setup_desc_rings()
1558 rx_ring->netdev = adapter->netdev; in igb_setup_desc_rings()
1559 rx_ring->reg_idx = adapter->vfs_allocated_count; in igb_setup_desc_rings()
1567 wr32(E1000_MRQC, adapter->vfs_allocated_count << 3); in igb_setup_desc_rings()
1570 igb_setup_rctl(adapter); in igb_setup_desc_rings()
1571 igb_configure_rx_ring(adapter, rx_ring); in igb_setup_desc_rings()
1578 igb_free_desc_rings(adapter); in igb_setup_desc_rings()
1582 static void igb_phy_disable_receiver(struct igb_adapter *adapter) in igb_phy_disable_receiver() argument
1584 struct e1000_hw *hw = &adapter->hw; in igb_phy_disable_receiver()
1593 static int igb_integrated_phy_loopback(struct igb_adapter *adapter) in igb_integrated_phy_loopback() argument
1595 struct e1000_hw *hw = &adapter->hw; in igb_integrated_phy_loopback()
1642 igb_phy_disable_receiver(adapter); in igb_integrated_phy_loopback()
1648 static int igb_set_phy_loopback(struct igb_adapter *adapter) in igb_set_phy_loopback() argument
1650 return igb_integrated_phy_loopback(adapter); in igb_set_phy_loopback()
1653 static int igb_setup_loopback_test(struct igb_adapter *adapter) in igb_setup_loopback_test() argument
1655 struct e1000_hw *hw = &adapter->hw; in igb_setup_loopback_test()
1720 return igb_set_phy_loopback(adapter); in igb_setup_loopback_test()
1723 static void igb_loopback_cleanup(struct igb_adapter *adapter) in igb_loopback_cleanup() argument
1725 struct e1000_hw *hw = &adapter->hw; in igb_loopback_cleanup()
1850 static int igb_run_loopback_test(struct igb_adapter *adapter) in igb_run_loopback_test() argument
1852 struct igb_ring *tx_ring = &adapter->test_tx_ring; in igb_run_loopback_test()
1853 struct igb_ring *rx_ring = &adapter->test_rx_ring; in igb_run_loopback_test()
1912 static int igb_loopback_test(struct igb_adapter *adapter, u64 *data) in igb_loopback_test() argument
1917 if (igb_check_reset_block(&adapter->hw)) { in igb_loopback_test()
1918 dev_err(&adapter->pdev->dev, in igb_loopback_test()
1924 if (adapter->hw.mac.type == e1000_i354) { in igb_loopback_test()
1925 dev_info(&adapter->pdev->dev, in igb_loopback_test()
1930 *data = igb_setup_desc_rings(adapter); in igb_loopback_test()
1933 *data = igb_setup_loopback_test(adapter); in igb_loopback_test()
1936 *data = igb_run_loopback_test(adapter); in igb_loopback_test()
1937 igb_loopback_cleanup(adapter); in igb_loopback_test()
1940 igb_free_desc_rings(adapter); in igb_loopback_test()
1945 static int igb_link_test(struct igb_adapter *adapter, u64 *data) in igb_link_test() argument
1947 struct e1000_hw *hw = &adapter->hw; in igb_link_test()
1958 hw->mac.ops.check_for_link(&adapter->hw); in igb_link_test()
1966 hw->mac.ops.check_for_link(&adapter->hw); in igb_link_test()
1979 struct igb_adapter *adapter = netdev_priv(netdev); in igb_diag_test() local
1984 set_bit(__IGB_TESTING, &adapter->state); in igb_diag_test()
1987 if (adapter->hw.dev_spec._82575.mas_capable) in igb_diag_test()
1993 autoneg_advertised = adapter->hw.phy.autoneg_advertised; in igb_diag_test()
1994 forced_speed_duplex = adapter->hw.mac.forced_speed_duplex; in igb_diag_test()
1995 autoneg = adapter->hw.mac.autoneg; in igb_diag_test()
1997 dev_info(&adapter->pdev->dev, "offline testing starting\n"); in igb_diag_test()
2000 igb_power_up_link(adapter); in igb_diag_test()
2005 if (igb_link_test(adapter, &data[4])) in igb_diag_test()
2012 igb_reset(adapter); in igb_diag_test()
2014 if (igb_reg_test(adapter, &data[0])) in igb_diag_test()
2017 igb_reset(adapter); in igb_diag_test()
2018 if (igb_eeprom_test(adapter, &data[1])) in igb_diag_test()
2021 igb_reset(adapter); in igb_diag_test()
2022 if (igb_intr_test(adapter, &data[2])) in igb_diag_test()
2025 igb_reset(adapter); in igb_diag_test()
2027 igb_power_up_link(adapter); in igb_diag_test()
2028 if (igb_loopback_test(adapter, &data[3])) in igb_diag_test()
2032 adapter->hw.phy.autoneg_advertised = autoneg_advertised; in igb_diag_test()
2033 adapter->hw.mac.forced_speed_duplex = forced_speed_duplex; in igb_diag_test()
2034 adapter->hw.mac.autoneg = autoneg; in igb_diag_test()
2037 adapter->hw.phy.autoneg_wait_to_complete = true; in igb_diag_test()
2038 igb_reset(adapter); in igb_diag_test()
2039 adapter->hw.phy.autoneg_wait_to_complete = false; in igb_diag_test()
2041 clear_bit(__IGB_TESTING, &adapter->state); in igb_diag_test()
2045 dev_info(&adapter->pdev->dev, "online testing starting\n"); in igb_diag_test()
2048 if (if_running && igb_link_test(adapter, &data[4])) in igb_diag_test()
2059 clear_bit(__IGB_TESTING, &adapter->state); in igb_diag_test()
2066 struct igb_adapter *adapter = netdev_priv(netdev); in igb_get_wol() local
2070 if (!(adapter->flags & IGB_FLAG_WOL_SUPPORTED)) in igb_get_wol()
2078 switch (adapter->hw.device_id) { in igb_get_wol()
2083 if (adapter->wol & E1000_WUFC_EX) in igb_get_wol()
2085 if (adapter->wol & E1000_WUFC_MC) in igb_get_wol()
2087 if (adapter->wol & E1000_WUFC_BC) in igb_get_wol()
2089 if (adapter->wol & E1000_WUFC_MAG) in igb_get_wol()
2091 if (adapter->wol & E1000_WUFC_LNKC) in igb_get_wol()
2097 struct igb_adapter *adapter = netdev_priv(netdev); in igb_set_wol() local
2102 if (!(adapter->flags & IGB_FLAG_WOL_SUPPORTED)) in igb_set_wol()
2106 adapter->wol = 0; in igb_set_wol()
2109 adapter->wol |= E1000_WUFC_EX; in igb_set_wol()
2111 adapter->wol |= E1000_WUFC_MC; in igb_set_wol()
2113 adapter->wol |= E1000_WUFC_BC; in igb_set_wol()
2115 adapter->wol |= E1000_WUFC_MAG; in igb_set_wol()
2117 adapter->wol |= E1000_WUFC_LNKC; in igb_set_wol()
2118 device_set_wakeup_enable(&adapter->pdev->dev, adapter->wol); in igb_set_wol()
2129 struct igb_adapter *adapter = netdev_priv(netdev); in igb_set_phys_id() local
2130 struct e1000_hw *hw = &adapter->hw; in igb_set_phys_id()
2144 clear_bit(IGB_LED_ON, &adapter->led_status); in igb_set_phys_id()
2155 struct igb_adapter *adapter = netdev_priv(netdev); in igb_set_coalesce() local
2191 if ((adapter->flags & IGB_FLAG_QUEUE_PAIRS) && ec->tx_coalesce_usecs) in igb_set_coalesce()
2196 if (adapter->flags & IGB_FLAG_DMAC) in igb_set_coalesce()
2197 adapter->flags &= ~IGB_FLAG_DMAC; in igb_set_coalesce()
2202 adapter->rx_itr_setting = ec->rx_coalesce_usecs; in igb_set_coalesce()
2204 adapter->rx_itr_setting = ec->rx_coalesce_usecs << 2; in igb_set_coalesce()
2207 if (adapter->flags & IGB_FLAG_QUEUE_PAIRS) in igb_set_coalesce()
2208 adapter->tx_itr_setting = adapter->rx_itr_setting; in igb_set_coalesce()
2210 adapter->tx_itr_setting = ec->tx_coalesce_usecs; in igb_set_coalesce()
2212 adapter->tx_itr_setting = ec->tx_coalesce_usecs << 2; in igb_set_coalesce()
2214 for (i = 0; i < adapter->num_q_vectors; i++) { in igb_set_coalesce()
2215 struct igb_q_vector *q_vector = adapter->q_vector[i]; in igb_set_coalesce()
2216 q_vector->tx.work_limit = adapter->tx_work_limit; in igb_set_coalesce()
2218 q_vector->itr_val = adapter->rx_itr_setting; in igb_set_coalesce()
2220 q_vector->itr_val = adapter->tx_itr_setting; in igb_set_coalesce()
2232 struct igb_adapter *adapter = netdev_priv(netdev); in igb_get_coalesce() local
2234 if (adapter->rx_itr_setting <= 3) in igb_get_coalesce()
2235 ec->rx_coalesce_usecs = adapter->rx_itr_setting; in igb_get_coalesce()
2237 ec->rx_coalesce_usecs = adapter->rx_itr_setting >> 2; in igb_get_coalesce()
2239 if (!(adapter->flags & IGB_FLAG_QUEUE_PAIRS)) { in igb_get_coalesce()
2240 if (adapter->tx_itr_setting <= 3) in igb_get_coalesce()
2241 ec->tx_coalesce_usecs = adapter->tx_itr_setting; in igb_get_coalesce()
2243 ec->tx_coalesce_usecs = adapter->tx_itr_setting >> 2; in igb_get_coalesce()
2251 struct igb_adapter *adapter = netdev_priv(netdev); in igb_nway_reset() local
2253 igb_reinit_locked(adapter); in igb_nway_reset()
2272 struct igb_adapter *adapter = netdev_priv(netdev); in igb_get_ethtool_stats() local
2273 struct rtnl_link_stats64 *net_stats = &adapter->stats64; in igb_get_ethtool_stats()
2279 spin_lock(&adapter->stats64_lock); in igb_get_ethtool_stats()
2280 igb_update_stats(adapter, net_stats); in igb_get_ethtool_stats()
2283 p = (char *)adapter + igb_gstrings_stats[i].stat_offset; in igb_get_ethtool_stats()
2292 for (j = 0; j < adapter->num_tx_queues; j++) { in igb_get_ethtool_stats()
2295 ring = adapter->tx_ring[j]; in igb_get_ethtool_stats()
2310 for (j = 0; j < adapter->num_rx_queues; j++) { in igb_get_ethtool_stats()
2311 ring = adapter->rx_ring[j]; in igb_get_ethtool_stats()
2322 spin_unlock(&adapter->stats64_lock); in igb_get_ethtool_stats()
2327 struct igb_adapter *adapter = netdev_priv(netdev); in igb_get_strings() local
2347 for (i = 0; i < adapter->num_tx_queues; i++) { in igb_get_strings()
2355 for (i = 0; i < adapter->num_rx_queues; i++) { in igb_get_strings()
2375 struct igb_adapter *adapter = netdev_priv(dev); in igb_get_ts_info() local
2377 if (adapter->ptp_clock) in igb_get_ts_info()
2378 info->phc_index = ptp_clock_index(adapter->ptp_clock); in igb_get_ts_info()
2382 switch (adapter->hw.mac.type) { in igb_get_ts_info()
2410 if (adapter->hw.mac.type >= e1000_82580) in igb_get_ts_info()
2424 static int igb_get_rss_hash_opts(struct igb_adapter *adapter, in igb_get_rss_hash_opts() argument
2435 if (adapter->flags & IGB_FLAG_RSS_FIELD_IPV4_UDP) in igb_get_rss_hash_opts()
2449 if (adapter->flags & IGB_FLAG_RSS_FIELD_IPV6_UDP) in igb_get_rss_hash_opts()
2469 struct igb_adapter *adapter = netdev_priv(dev); in igb_get_rxnfc() local
2474 cmd->data = adapter->num_rx_queues; in igb_get_rxnfc()
2478 ret = igb_get_rss_hash_opts(adapter, cmd); in igb_get_rxnfc()
2489 static int igb_set_rss_hash_opt(struct igb_adapter *adapter, in igb_set_rss_hash_opt() argument
2492 u32 flags = adapter->flags; in igb_set_rss_hash_opt()
2559 if (flags != adapter->flags) { in igb_set_rss_hash_opt()
2560 struct e1000_hw *hw = &adapter->hw; in igb_set_rss_hash_opt()
2564 !(adapter->flags & UDP_RSS_FLAGS)) in igb_set_rss_hash_opt()
2565 dev_err(&adapter->pdev->dev, in igb_set_rss_hash_opt()
2568 adapter->flags = flags; in igb_set_rss_hash_opt()
2593 struct igb_adapter *adapter = netdev_priv(dev); in igb_set_rxnfc() local
2598 ret = igb_set_rss_hash_opt(adapter, cmd); in igb_set_rxnfc()
2609 struct igb_adapter *adapter = netdev_priv(netdev); in igb_get_eee() local
2610 struct e1000_hw *hw = &adapter->hw; in igb_get_eee()
2622 mmd_eee_adv_to_ethtool_adv_t(adapter->eee_advert); in igb_get_eee()
2675 if (adapter->link_duplex == HALF_DUPLEX) { in igb_get_eee()
2688 struct igb_adapter *adapter = netdev_priv(netdev); in igb_set_eee() local
2689 struct e1000_hw *hw = &adapter->hw; in igb_set_eee()
2706 dev_err(&adapter->pdev->dev, in igb_set_eee()
2713 dev_err(&adapter->pdev->dev, in igb_set_eee()
2720 dev_err(&adapter->pdev->dev, in igb_set_eee()
2728 dev_err(&adapter->pdev->dev, in igb_set_eee()
2733 adapter->eee_advert = ethtool_adv_to_mmd_eee_adv_t(edata->advertised); in igb_set_eee()
2736 adapter->flags |= IGB_FLAG_EEE; in igb_set_eee()
2740 igb_reinit_locked(adapter); in igb_set_eee()
2742 igb_reset(adapter); in igb_set_eee()
2751 dev_err(&adapter->pdev->dev, in igb_set_eee()
2762 struct igb_adapter *adapter = netdev_priv(netdev); in igb_get_module_info() local
2763 struct e1000_hw *hw = &adapter->hw; in igb_get_module_info()
2804 struct igb_adapter *adapter = netdev_priv(netdev); in igb_get_module_eeprom() local
2805 struct e1000_hw *hw = &adapter->hw; in igb_get_module_eeprom()
2842 struct igb_adapter *adapter = netdev_priv(netdev); in igb_ethtool_begin() local
2843 pm_runtime_get_sync(&adapter->pdev->dev); in igb_ethtool_begin()
2849 struct igb_adapter *adapter = netdev_priv(netdev); in igb_ethtool_complete() local
2850 pm_runtime_put(&adapter->pdev->dev); in igb_ethtool_complete()
2861 struct igb_adapter *adapter = netdev_priv(netdev); in igb_get_rxfh() local
2869 indir[i] = adapter->rss_indir_tbl[i]; in igb_get_rxfh()
2874 void igb_write_rss_indir_tbl(struct igb_adapter *adapter) in igb_write_rss_indir_tbl() argument
2876 struct e1000_hw *hw = &adapter->hw; in igb_write_rss_indir_tbl()
2887 if (adapter->vfs_allocated_count) in igb_write_rss_indir_tbl()
2900 val |= adapter->rss_indir_tbl[i + j]; in igb_write_rss_indir_tbl()
2912 struct igb_adapter *adapter = netdev_priv(netdev); in igb_set_rxfh() local
2913 struct e1000_hw *hw = &adapter->hw; in igb_set_rxfh()
2924 num_queues = adapter->rss_queues; in igb_set_rxfh()
2929 if (adapter->vfs_allocated_count) in igb_set_rxfh()
2943 adapter->rss_indir_tbl[i] = indir[i]; in igb_set_rxfh()
2945 igb_write_rss_indir_tbl(adapter); in igb_set_rxfh()
2950 static unsigned int igb_max_channels(struct igb_adapter *adapter) in igb_max_channels() argument
2952 struct e1000_hw *hw = &adapter->hw; in igb_max_channels()
2964 if (!!adapter->vfs_allocated_count) { in igb_max_channels()
2970 if (!!adapter->vfs_allocated_count) { in igb_max_channels()
2988 struct igb_adapter *adapter = netdev_priv(netdev); in igb_get_channels() local
2991 ch->max_combined = igb_max_channels(adapter); in igb_get_channels()
2994 if (adapter->flags & IGB_FLAG_HAS_MSIX) { in igb_get_channels()
2999 ch->combined_count = adapter->rss_queues; in igb_get_channels()
3005 struct igb_adapter *adapter = netdev_priv(netdev); in igb_set_channels() local
3018 max_combined = igb_max_channels(adapter); in igb_set_channels()
3022 if (count != adapter->rss_queues) { in igb_set_channels()
3023 adapter->rss_queues = count; in igb_set_channels()
3024 igb_set_flag_queue_pairs(adapter, max_combined); in igb_set_channels()
3029 return igb_reinit_queues(adapter); in igb_set_channels()