This patch updates ixgbe_supported_sfp_modules_X550em to return
IXGBE_ERR_SFP_NOT_PRESENT when SFP module is not present and updates
ixgbe_setup_mac_link_sfp_x550em to handle this return value.

Signed-off-by: Wenzhuo Lu <wenzhuo.lu at intel.com>
---
 drivers/net/ixgbe/base/ixgbe_x550.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ixgbe/base/ixgbe_x550.c 
b/drivers/net/ixgbe/base/ixgbe_x550.c
index 2aa1fc7..1ae79d1 100644
--- a/drivers/net/ixgbe/base/ixgbe_x550.c
+++ b/drivers/net/ixgbe/base/ixgbe_x550.c
@@ -1000,7 +1000,7 @@ STATIC s32 ixgbe_supported_sfp_modules_X550em(struct 
ixgbe_hw *hw, bool *linear)

        switch (hw->phy.sfp_type) {
        case ixgbe_sfp_type_not_present:
-               return IXGBE_SUCCESS;
+               return IXGBE_ERR_SFP_NOT_PRESENT;
        case ixgbe_sfp_type_da_cu_core0:
        case ixgbe_sfp_type_da_cu_core1:
                *linear = true;
@@ -1725,6 +1725,13 @@ s32 ixgbe_setup_mac_link_sfp_x550em(struct ixgbe_hw *hw,
        /* Check if SFP module is supported and linear */
        ret_val = ixgbe_supported_sfp_modules_X550em(hw, &setup_linear);

+       /* If no SFP module present, then return success. Return success since
+        * there is no reason to configure CS4227 and SFP not present error is
+        * not excepted in the setup MAC link flow.
+        */
+       if (ret_val == IXGBE_ERR_SFP_NOT_PRESENT)
+               return IXGBE_SUCCESS;
+
        if (ret_val != IXGBE_SUCCESS)
                return ret_val;

-- 
1.9.3

Reply via email to