aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2013-04-26 23:33:41 -0400
committerDavid S. Miller <davem@davemloft.net>2013-04-26 23:33:41 -0400
commitc39904a0ac22cf05f5f44226457f6da0fe65457e (patch)
treeeda7488e1093465d1017de782956a95e65d195ae
parentb38a54eaa0acc5991cbad93bf44b355aa43f6d6f (diff)
parentc4a56de88c6cd9996fb5dc7576d6c4934b5e6465 (diff)
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next
Jeff Kirsher says: ==================== This series contains updates to e1000e, igb and ixgbe. There are 2 patches in this series which could be applied to net, but since Linus is so very close to releasing 3.9, I do not think it prudent to try and push these into net at this time. I have CC'd stable on these patches so that they can queue them up as soon as 3.9 gets released. The 2 patches are: e1000e: fix numeric overflow in phc settime method ixgbe: fix EICR write in ixgbe_msix_other Richard provides a fix for e1000e by using a helper function from time.h to resolve a unintended overflow in the PTP settime function. Bruce provides a fix to wait for NAPI to be done with the current context after disabling interrupts and then disable NAPI when the interface is going down. This fixes a possible "unable to handle kernel paging request" panic in net-next. Andi Kleen provides a patch for igb to use mdelay instead of udelay when we needed 100000us. Jacob provides a fix for ixgbe to simply mask the lower 16bits off so that ixgbe_msix_other does not write them in the EICR, which causes them to remain high and be properly handled by the clean_rings interrupt routine as normal. Emil cleans up the logic in ixgbe_setup_loopback_test() to only access registers applicable to the MAC type. In addition, removes majority of the AUTOC register reads by using a cached value instead to avoid writing corrupted values to AUTOC due to bad FW. Emil also add support for disabling link during boot time. Lastly, he provides a patch which adds the MAC type to the version in ethtool_regs which will make it easier to check the MAC type when dumping registers with ethtool. There is a separate ethtool tool patch which is dependent upon Emil's last patch of the series to add the MAC type to the version in ethtool_regs, which will be sent separately. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/intel/e1000e/netdev.c7
-rw-r--r--drivers/net/ethernet/intel/e1000e/ptp.c3
-rw-r--r--drivers/net/ethernet/intel/igb/e1000_phy.c6
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c61
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c29
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_main.c10
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_type.h2
7 files changed, 80 insertions, 38 deletions
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index da7f2fad5ba4..a27e3bcc3249 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -4016,6 +4016,8 @@ void e1000e_down(struct e1000_adapter *adapter)
4016 4016
4017 e1000_irq_disable(adapter); 4017 e1000_irq_disable(adapter);
4018 4018
4019 napi_synchronize(&adapter->napi);
4020
4019 del_timer_sync(&adapter->watchdog_timer); 4021 del_timer_sync(&adapter->watchdog_timer);
4020 del_timer_sync(&adapter->phy_info_timer); 4022 del_timer_sync(&adapter->phy_info_timer);
4021 4023
@@ -4372,12 +4374,13 @@ static int e1000_close(struct net_device *netdev)
4372 4374
4373 pm_runtime_get_sync(&pdev->dev); 4375 pm_runtime_get_sync(&pdev->dev);
4374 4376
4375 napi_disable(&adapter->napi);
4376
4377 if (!test_bit(__E1000_DOWN, &adapter->state)) { 4377 if (!test_bit(__E1000_DOWN, &adapter->state)) {
4378 e1000e_down(adapter); 4378 e1000e_down(adapter);
4379 e1000_free_irq(adapter); 4379 e1000_free_irq(adapter);
4380 } 4380 }
4381
4382 napi_disable(&adapter->napi);
4383
4381 e1000_power_down_phy(adapter); 4384 e1000_power_down_phy(adapter);
4382 4385
4383 e1000e_free_tx_resources(adapter->tx_ring); 4386 e1000e_free_tx_resources(adapter->tx_ring);
diff --git a/drivers/net/ethernet/intel/e1000e/ptp.c b/drivers/net/ethernet/intel/e1000e/ptp.c
index b477fa53ec94..065f8c80d4f2 100644
--- a/drivers/net/ethernet/intel/e1000e/ptp.c
+++ b/drivers/net/ethernet/intel/e1000e/ptp.c
@@ -145,8 +145,7 @@ static int e1000e_phc_settime(struct ptp_clock_info *ptp,
145 unsigned long flags; 145 unsigned long flags;
146 u64 ns; 146 u64 ns;
147 147
148 ns = ts->tv_sec * NSEC_PER_SEC; 148 ns = timespec_to_ns(ts);
149 ns += ts->tv_nsec;
150 149
151 /* reset the timecounter */ 150 /* reset the timecounter */
152 spin_lock_irqsave(&adapter->systim_lock, flags); 151 spin_lock_irqsave(&adapter->systim_lock, flags);
diff --git a/drivers/net/ethernet/intel/igb/e1000_phy.c b/drivers/net/ethernet/intel/igb/e1000_phy.c
index fd46add6c4e4..115b0da6e013 100644
--- a/drivers/net/ethernet/intel/igb/e1000_phy.c
+++ b/drivers/net/ethernet/intel/igb/e1000_phy.c
@@ -1130,7 +1130,7 @@ s32 igb_phy_force_speed_duplex_igp(struct e1000_hw *hw)
1130 if (phy->autoneg_wait_to_complete) { 1130 if (phy->autoneg_wait_to_complete) {
1131 hw_dbg("Waiting for forced speed/duplex link on IGP phy.\n"); 1131 hw_dbg("Waiting for forced speed/duplex link on IGP phy.\n");
1132 1132
1133 ret_val = igb_phy_has_link(hw, PHY_FORCE_LIMIT, 100000, &link); 1133 ret_val = igb_phy_has_link(hw, PHY_FORCE_LIMIT, 10000, &link);
1134 if (ret_val) 1134 if (ret_val)
1135 goto out; 1135 goto out;
1136 1136
@@ -1138,7 +1138,7 @@ s32 igb_phy_force_speed_duplex_igp(struct e1000_hw *hw)
1138 hw_dbg("Link taking longer than expected.\n"); 1138 hw_dbg("Link taking longer than expected.\n");
1139 1139
1140 /* Try once more */ 1140 /* Try once more */
1141 ret_val = igb_phy_has_link(hw, PHY_FORCE_LIMIT, 100000, &link); 1141 ret_val = igb_phy_has_link(hw, PHY_FORCE_LIMIT, 10000, &link);
1142 if (ret_val) 1142 if (ret_val)
1143 goto out; 1143 goto out;
1144 } 1144 }
@@ -1590,7 +1590,7 @@ s32 igb_phy_has_link(struct e1000_hw *hw, u32 iterations,
1590 * it across the board. 1590 * it across the board.
1591 */ 1591 */
1592 ret_val = hw->phy.ops.read_reg(hw, PHY_STATUS, &phy_status); 1592 ret_val = hw->phy.ops.read_reg(hw, PHY_STATUS, &phy_status);
1593 if (ret_val) { 1593 if (ret_val && usec_interval > 0) {
1594 /* If the first read fails, another entity may have 1594 /* If the first read fails, another entity may have
1595 * ownership of the resources, wait and try again to 1595 * ownership of the resources, wait and try again to
1596 * see if they have relinquished the resources yet. 1596 * see if they have relinquished the resources yet.
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c
index 3f792428ca53..0b82d38bc97d 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c
@@ -167,9 +167,9 @@ static s32 ixgbe_setup_sfp_modules_82599(struct ixgbe_hw *hw)
167 } 167 }
168 168
169 /* Restart DSP and set SFI mode */ 169 /* Restart DSP and set SFI mode */
170 IXGBE_WRITE_REG(hw, IXGBE_AUTOC, (IXGBE_READ_REG(hw, 170 IXGBE_WRITE_REG(hw, IXGBE_AUTOC, ((hw->mac.orig_autoc) |
171 IXGBE_AUTOC) | IXGBE_AUTOC_LMS_10G_SERIAL)); 171 IXGBE_AUTOC_LMS_10G_SERIAL));
172 172 hw->mac.cached_autoc = IXGBE_READ_REG(hw, IXGBE_AUTOC);
173 ret_val = ixgbe_reset_pipeline_82599(hw); 173 ret_val = ixgbe_reset_pipeline_82599(hw);
174 174
175 if (got_lock) { 175 if (got_lock) {
@@ -803,12 +803,9 @@ static s32 ixgbe_setup_mac_link_82599(struct ixgbe_hw *hw,
803 bool autoneg_wait_to_complete) 803 bool autoneg_wait_to_complete)
804{ 804{
805 s32 status = 0; 805 s32 status = 0;
806 u32 autoc = IXGBE_READ_REG(hw, IXGBE_AUTOC); 806 u32 autoc, pma_pmd_1g, link_mode, start_autoc;
807 u32 autoc2 = IXGBE_READ_REG(hw, IXGBE_AUTOC2); 807 u32 autoc2 = IXGBE_READ_REG(hw, IXGBE_AUTOC2);
808 u32 start_autoc = autoc;
809 u32 orig_autoc = 0; 808 u32 orig_autoc = 0;
810 u32 link_mode = autoc & IXGBE_AUTOC_LMS_MASK;
811 u32 pma_pmd_1g = autoc & IXGBE_AUTOC_1G_PMA_PMD_MASK;
812 u32 pma_pmd_10g_serial = autoc2 & IXGBE_AUTOC2_10G_SERIAL_PMA_PMD_MASK; 809 u32 pma_pmd_10g_serial = autoc2 & IXGBE_AUTOC2_10G_SERIAL_PMA_PMD_MASK;
813 u32 links_reg; 810 u32 links_reg;
814 u32 i; 811 u32 i;
@@ -831,9 +828,14 @@ static s32 ixgbe_setup_mac_link_82599(struct ixgbe_hw *hw,
831 828
832 /* Use stored value (EEPROM defaults) of AUTOC to find KR/KX4 support*/ 829 /* Use stored value (EEPROM defaults) of AUTOC to find KR/KX4 support*/
833 if (hw->mac.orig_link_settings_stored) 830 if (hw->mac.orig_link_settings_stored)
834 orig_autoc = hw->mac.orig_autoc; 831 autoc = hw->mac.orig_autoc;
835 else 832 else
836 orig_autoc = autoc; 833 autoc = IXGBE_READ_REG(hw, IXGBE_AUTOC);
834
835 orig_autoc = autoc;
836 start_autoc = hw->mac.cached_autoc;
837 link_mode = autoc & IXGBE_AUTOC_LMS_MASK;
838 pma_pmd_1g = autoc & IXGBE_AUTOC_1G_PMA_PMD_MASK;
837 839
838 if (link_mode == IXGBE_AUTOC_LMS_KX4_KX_KR || 840 if (link_mode == IXGBE_AUTOC_LMS_KX4_KX_KR ||
839 link_mode == IXGBE_AUTOC_LMS_KX4_KX_KR_1G_AN || 841 link_mode == IXGBE_AUTOC_LMS_KX4_KX_KR_1G_AN ||
@@ -887,6 +889,7 @@ static s32 ixgbe_setup_mac_link_82599(struct ixgbe_hw *hw,
887 889
888 /* Restart link */ 890 /* Restart link */
889 IXGBE_WRITE_REG(hw, IXGBE_AUTOC, autoc); 891 IXGBE_WRITE_REG(hw, IXGBE_AUTOC, autoc);
892 hw->mac.cached_autoc = autoc;
890 ixgbe_reset_pipeline_82599(hw); 893 ixgbe_reset_pipeline_82599(hw);
891 894
892 if (got_lock) 895 if (got_lock)
@@ -958,7 +961,7 @@ static s32 ixgbe_reset_hw_82599(struct ixgbe_hw *hw)
958{ 961{
959 ixgbe_link_speed link_speed; 962 ixgbe_link_speed link_speed;
960 s32 status; 963 s32 status;
961 u32 ctrl, i, autoc, autoc2; 964 u32 ctrl, i, autoc2;
962 u32 curr_lms; 965 u32 curr_lms;
963 bool link_up = false; 966 bool link_up = false;
964 967
@@ -991,8 +994,12 @@ static s32 ixgbe_reset_hw_82599(struct ixgbe_hw *hw)
991 if (hw->phy.reset_disable == false && hw->phy.ops.reset != NULL) 994 if (hw->phy.reset_disable == false && hw->phy.ops.reset != NULL)
992 hw->phy.ops.reset(hw); 995 hw->phy.ops.reset(hw);
993 996
994 /* remember AUTOC LMS from before we reset */ 997 /* remember AUTOC from before we reset */
995 curr_lms = IXGBE_READ_REG(hw, IXGBE_AUTOC) & IXGBE_AUTOC_LMS_MASK; 998 if (hw->mac.cached_autoc)
999 curr_lms = hw->mac.cached_autoc & IXGBE_AUTOC_LMS_MASK;
1000 else
1001 curr_lms = IXGBE_READ_REG(hw, IXGBE_AUTOC) &
1002 IXGBE_AUTOC_LMS_MASK;
996 1003
997mac_reset_top: 1004mac_reset_top:
998 /* 1005 /*
@@ -1042,10 +1049,18 @@ mac_reset_top:
1042 * stored off yet. Otherwise restore the stored original 1049 * stored off yet. Otherwise restore the stored original
1043 * values since the reset operation sets back to defaults. 1050 * values since the reset operation sets back to defaults.
1044 */ 1051 */
1045 autoc = IXGBE_READ_REG(hw, IXGBE_AUTOC); 1052 hw->mac.cached_autoc = IXGBE_READ_REG(hw, IXGBE_AUTOC);
1046 autoc2 = IXGBE_READ_REG(hw, IXGBE_AUTOC2); 1053 autoc2 = IXGBE_READ_REG(hw, IXGBE_AUTOC2);
1054
1055 /* Enable link if disabled in NVM */
1056 if (autoc2 & IXGBE_AUTOC2_LINK_DISABLE_MASK) {
1057 autoc2 &= ~IXGBE_AUTOC2_LINK_DISABLE_MASK;
1058 IXGBE_WRITE_REG(hw, IXGBE_AUTOC2, autoc2);
1059 IXGBE_WRITE_FLUSH(hw);
1060 }
1061
1047 if (hw->mac.orig_link_settings_stored == false) { 1062 if (hw->mac.orig_link_settings_stored == false) {
1048 hw->mac.orig_autoc = autoc; 1063 hw->mac.orig_autoc = hw->mac.cached_autoc;
1049 hw->mac.orig_autoc2 = autoc2; 1064 hw->mac.orig_autoc2 = autoc2;
1050 hw->mac.orig_link_settings_stored = true; 1065 hw->mac.orig_link_settings_stored = true;
1051 } else { 1066 } else {
@@ -1062,7 +1077,7 @@ mac_reset_top:
1062 (hw->mac.orig_autoc & ~IXGBE_AUTOC_LMS_MASK) | 1077 (hw->mac.orig_autoc & ~IXGBE_AUTOC_LMS_MASK) |
1063 curr_lms; 1078 curr_lms;
1064 1079
1065 if (autoc != hw->mac.orig_autoc) { 1080 if (hw->mac.cached_autoc != hw->mac.orig_autoc) {
1066 /* Need SW/FW semaphore around AUTOC writes if LESM is 1081 /* Need SW/FW semaphore around AUTOC writes if LESM is
1067 * on, likewise reset_pipeline requires us to hold 1082 * on, likewise reset_pipeline requires us to hold
1068 * this lock as it also writes to AUTOC. 1083 * this lock as it also writes to AUTOC.
@@ -1078,6 +1093,7 @@ mac_reset_top:
1078 } 1093 }
1079 1094
1080 IXGBE_WRITE_REG(hw, IXGBE_AUTOC, hw->mac.orig_autoc); 1095 IXGBE_WRITE_REG(hw, IXGBE_AUTOC, hw->mac.orig_autoc);
1096 hw->mac.cached_autoc = hw->mac.orig_autoc;
1081 ixgbe_reset_pipeline_82599(hw); 1097 ixgbe_reset_pipeline_82599(hw);
1082 1098
1083 if (got_lock) 1099 if (got_lock)
@@ -2178,10 +2194,19 @@ static s32 ixgbe_read_eeprom_82599(struct ixgbe_hw *hw,
2178 **/ 2194 **/
2179s32 ixgbe_reset_pipeline_82599(struct ixgbe_hw *hw) 2195s32 ixgbe_reset_pipeline_82599(struct ixgbe_hw *hw)
2180{ 2196{
2181 s32 i, autoc_reg, ret_val; 2197 s32 ret_val;
2182 s32 anlp1_reg = 0; 2198 u32 anlp1_reg = 0;
2199 u32 i, autoc_reg, autoc2_reg;
2200
2201 /* Enable link if disabled in NVM */
2202 autoc2_reg = IXGBE_READ_REG(hw, IXGBE_AUTOC2);
2203 if (autoc2_reg & IXGBE_AUTOC2_LINK_DISABLE_MASK) {
2204 autoc2_reg &= ~IXGBE_AUTOC2_LINK_DISABLE_MASK;
2205 IXGBE_WRITE_REG(hw, IXGBE_AUTOC2, autoc2_reg);
2206 IXGBE_WRITE_FLUSH(hw);
2207 }
2183 2208
2184 autoc_reg = IXGBE_READ_REG(hw, IXGBE_AUTOC); 2209 autoc_reg = hw->mac.cached_autoc;
2185 autoc_reg |= IXGBE_AUTOC_AN_RESTART; 2210 autoc_reg |= IXGBE_AUTOC_AN_RESTART;
2186 2211
2187 /* Write AUTOC register with toggled LMS[2] bit and Restart_AN */ 2212 /* Write AUTOC register with toggled LMS[2] bit and Restart_AN */
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
index bbe00bcc7582..d3754722adb4 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
@@ -440,7 +440,8 @@ static void ixgbe_get_regs(struct net_device *netdev,
440 440
441 memset(p, 0, IXGBE_REGS_LEN * sizeof(u32)); 441 memset(p, 0, IXGBE_REGS_LEN * sizeof(u32));
442 442
443 regs->version = (1 << 24) | hw->revision_id << 16 | hw->device_id; 443 regs->version = hw->mac.type << 24 | hw->revision_id << 16 |
444 hw->device_id;
444 445
445 /* General Registers */ 446 /* General Registers */
446 regs_buff[0] = IXGBE_READ_REG(hw, IXGBE_CTRL); 447 regs_buff[0] = IXGBE_READ_REG(hw, IXGBE_CTRL);
@@ -1609,16 +1610,9 @@ static int ixgbe_setup_loopback_test(struct ixgbe_adapter *adapter)
1609 struct ixgbe_hw *hw = &adapter->hw; 1610 struct ixgbe_hw *hw = &adapter->hw;
1610 u32 reg_data; 1611 u32 reg_data;
1611 1612
1612 /* X540 needs to set the MACC.FLU bit to force link up */
1613 if (adapter->hw.mac.type == ixgbe_mac_X540) {
1614 reg_data = IXGBE_READ_REG(hw, IXGBE_MACC);
1615 reg_data |= IXGBE_MACC_FLU;
1616 IXGBE_WRITE_REG(hw, IXGBE_MACC, reg_data);
1617 }
1618 1613
1619 /* right now we only support MAC loopback in the driver */
1620 reg_data = IXGBE_READ_REG(hw, IXGBE_HLREG0);
1621 /* Setup MAC loopback */ 1614 /* Setup MAC loopback */
1615 reg_data = IXGBE_READ_REG(hw, IXGBE_HLREG0);
1622 reg_data |= IXGBE_HLREG0_LPBK; 1616 reg_data |= IXGBE_HLREG0_LPBK;
1623 IXGBE_WRITE_REG(hw, IXGBE_HLREG0, reg_data); 1617 IXGBE_WRITE_REG(hw, IXGBE_HLREG0, reg_data);
1624 1618
@@ -1626,10 +1620,19 @@ static int ixgbe_setup_loopback_test(struct ixgbe_adapter *adapter)
1626 reg_data |= IXGBE_FCTRL_BAM | IXGBE_FCTRL_SBP | IXGBE_FCTRL_MPE; 1620 reg_data |= IXGBE_FCTRL_BAM | IXGBE_FCTRL_SBP | IXGBE_FCTRL_MPE;
1627 IXGBE_WRITE_REG(hw, IXGBE_FCTRL, reg_data); 1621 IXGBE_WRITE_REG(hw, IXGBE_FCTRL, reg_data);
1628 1622
1629 reg_data = IXGBE_READ_REG(hw, IXGBE_AUTOC); 1623 /* X540 needs to set the MACC.FLU bit to force link up */
1630 reg_data &= ~IXGBE_AUTOC_LMS_MASK; 1624 if (adapter->hw.mac.type == ixgbe_mac_X540) {
1631 reg_data |= IXGBE_AUTOC_LMS_10G_LINK_NO_AN | IXGBE_AUTOC_FLU; 1625 reg_data = IXGBE_READ_REG(hw, IXGBE_MACC);
1632 IXGBE_WRITE_REG(hw, IXGBE_AUTOC, reg_data); 1626 reg_data |= IXGBE_MACC_FLU;
1627 IXGBE_WRITE_REG(hw, IXGBE_MACC, reg_data);
1628 } else {
1629 if (hw->mac.orig_autoc) {
1630 reg_data = hw->mac.orig_autoc | IXGBE_AUTOC_FLU;
1631 IXGBE_WRITE_REG(hw, IXGBE_AUTOC, reg_data);
1632 } else {
1633 return 10;
1634 }
1635 }
1633 IXGBE_WRITE_FLUSH(hw); 1636 IXGBE_WRITE_FLUSH(hw);
1634 usleep_range(10000, 20000); 1637 usleep_range(10000, 20000);
1635 1638
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index 88f67375e85e..d30fbdd81fca 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -2454,6 +2454,16 @@ static irqreturn_t ixgbe_msix_other(int irq, void *data)
2454 * with the write to EICR. 2454 * with the write to EICR.
2455 */ 2455 */
2456 eicr = IXGBE_READ_REG(hw, IXGBE_EICS); 2456 eicr = IXGBE_READ_REG(hw, IXGBE_EICS);
2457
2458 /* The lower 16bits of the EICR register are for the queue interrupts
2459 * which should be masked here in order to not accidently clear them if
2460 * the bits are high when ixgbe_msix_other is called. There is a race
2461 * condition otherwise which results in possible performance loss
2462 * especially if the ixgbe_msix_other interrupt is triggering
2463 * consistently (as it would when PPS is turned on for the X540 device)
2464 */
2465 eicr &= 0xFFFF0000;
2466
2457 IXGBE_WRITE_REG(hw, IXGBE_EICR, eicr); 2467 IXGBE_WRITE_REG(hw, IXGBE_EICR, eicr);
2458 2468
2459 if (eicr & IXGBE_EICR_LSC) 2469 if (eicr & IXGBE_EICR_LSC)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h b/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h
index 6d7066531139..70c6aa3d3f95 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h
@@ -1593,6 +1593,7 @@ enum {
1593#define IXGBE_AUTOC2_10G_KR (0x0 << IXGBE_AUTOC2_10G_SERIAL_PMA_PMD_SHIFT) 1593#define IXGBE_AUTOC2_10G_KR (0x0 << IXGBE_AUTOC2_10G_SERIAL_PMA_PMD_SHIFT)
1594#define IXGBE_AUTOC2_10G_XFI (0x1 << IXGBE_AUTOC2_10G_SERIAL_PMA_PMD_SHIFT) 1594#define IXGBE_AUTOC2_10G_XFI (0x1 << IXGBE_AUTOC2_10G_SERIAL_PMA_PMD_SHIFT)
1595#define IXGBE_AUTOC2_10G_SFI (0x2 << IXGBE_AUTOC2_10G_SERIAL_PMA_PMD_SHIFT) 1595#define IXGBE_AUTOC2_10G_SFI (0x2 << IXGBE_AUTOC2_10G_SERIAL_PMA_PMD_SHIFT)
1596#define IXGBE_AUTOC2_LINK_DISABLE_MASK 0x70000000
1596 1597
1597#define IXGBE_MACC_FLU 0x00000001 1598#define IXGBE_MACC_FLU 0x00000001
1598#define IXGBE_MACC_FSV_10G 0x00030000 1599#define IXGBE_MACC_FSV_10G 0x00030000
@@ -2928,6 +2929,7 @@ struct ixgbe_mac_info {
2928 u32 max_tx_queues; 2929 u32 max_tx_queues;
2929 u32 max_rx_queues; 2930 u32 max_rx_queues;
2930 u32 orig_autoc; 2931 u32 orig_autoc;
2932 u32 cached_autoc;
2931 u32 orig_autoc2; 2933 u32 orig_autoc2;
2932 bool orig_link_settings_stored; 2934 bool orig_link_settings_stored;
2933 bool autotry_restart; 2935 bool autotry_restart;