From: Wei Dai Date: Wed, 21 Dec 2016 09:48:01 +0000 (+0800) Subject: net/ixgbe/base: support busy SGMII register reads X-Git-Tag: spdx-start~4944 X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=8ccdd7bf94a2654c2b6ed2ad6027deb146e99c08;p=dpdk.git net/ixgbe/base: support busy SGMII register reads Read and store NW_MNG_IF_SEL register because register fields are used to determine SGMII link for busy SGMII register reads. Signed-off-by: Wei Dai --- diff --git a/drivers/net/ixgbe/base/ixgbe_x550.c b/drivers/net/ixgbe/base/ixgbe_x550.c index c7ccd81215..0011f210e8 100644 --- a/drivers/net/ixgbe/base/ixgbe_x550.c +++ b/drivers/net/ixgbe/base/ixgbe_x550.c @@ -2444,6 +2444,9 @@ s32 ixgbe_init_phy_ops_X550em(struct ixgbe_hw *hw) DEBUGFUNC("ixgbe_init_phy_ops_X550em"); + hw->mac.ops.set_lan_id(hw); + ixgbe_read_mng_if_sel_x550em(hw); + if (hw->mac.ops.get_media_type(hw) == ixgbe_media_type_fiber) { phy->phy_semaphore_mask = IXGBE_GSSR_SHARED_I2C_SM; ixgbe_setup_mux_ctl(hw); @@ -2483,7 +2486,8 @@ s32 ixgbe_init_phy_ops_X550em(struct ixgbe_hw *hw) /* Identify the PHY or SFP module */ ret_val = phy->ops.identify(hw); - if (ret_val == IXGBE_ERR_SFP_NOT_SUPPORTED) + if (ret_val == IXGBE_ERR_SFP_NOT_SUPPORTED || + ret_val == IXGBE_ERR_PHY_ADDR_INVALID) return ret_val; /* Setup function pointers based on detected hardware */