From 10f1868bac825cc0747b2ca9e7cf3b8d8596592e Mon Sep 17 00:00:00 2001 From: Wenzhuo Lu Date: Wed, 24 Jun 2015 11:25:59 +0800 Subject: [PATCH] ixgbe/base: restore advertised autoneg after setting X550em LPLU On systems that support LPLU in the firmware, the driver wouldn't be aware of the LPLU speed change, and it wouldn't cache the new value when the driver resumes. This patch emulates the same behavior by restoring the previous autoneg settings to autoneg_advertised. Signed-off-by: Wenzhuo Lu Acked-by: Helin Zhang --- drivers/net/ixgbe/base/ixgbe_x550.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/net/ixgbe/base/ixgbe_x550.c b/drivers/net/ixgbe/base/ixgbe_x550.c index fd46699273..3c188e9cc5 100644 --- a/drivers/net/ixgbe/base/ixgbe_x550.c +++ b/drivers/net/ixgbe/base/ixgbe_x550.c @@ -2481,6 +2481,7 @@ s32 ixgbe_enter_lplu_t_x550em(struct ixgbe_hw *hw) u16 autoneg_status, an_10g_cntl_reg, autoneg_reg, speed; s32 status; ixgbe_link_speed lcd_speed; + u32 save_autoneg; /* If blocked by MNG FW, then don't restart AN */ if (ixgbe_check_reset_blocked(hw)) @@ -2556,9 +2557,14 @@ s32 ixgbe_enter_lplu_t_x550em(struct ixgbe_hw *hw) if (status != IXGBE_SUCCESS) return status; + save_autoneg = hw->phy.autoneg_advertised; + /* Setup link at least common link speed */ status = hw->mac.ops.setup_link(hw, lcd_speed, false); + /* restore autoneg from before setting lplu speed */ + hw->phy.autoneg_advertised = save_autoneg; + return status; } -- 2.20.1