net/ixgbe/base: disable X550EM-x 1GBASE-T led switch support
authorWei Dai <wei.dai@intel.com>
Sat, 27 May 2017 08:33:17 +0000 (16:33 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Mon, 12 Jun 2017 09:41:27 +0000 (10:41 +0100)
This patch disables X550EM_X 1Gbase-t led_[on|off] support since
the LEDs are wired to the PHY and the driver can not access the
PHY. led_[on|off]

Support is disabled by setting the function pointer to NULL.
init_led_link_act is also set to NULL.

Signed-off-by: Wei Dai <wei.dai@intel.com>
drivers/net/ixgbe/base/ixgbe_common.c
drivers/net/ixgbe/base/ixgbe_x550.c

index 4dabb43..7f85713 100644 (file)
@@ -504,7 +504,8 @@ s32 ixgbe_init_hw_generic(struct ixgbe_hw *hw)
        }
 
        /* Initialize the LED link active for LED blink support */
-       hw->mac.ops.init_led_link_act(hw);
+       if (hw->mac.ops.init_led_link_act)
+               hw->mac.ops.init_led_link_act(hw);
 
        if (status != IXGBE_SUCCESS)
                DEBUGOUT1("Failed to initialize HW, STATUS = %d\n", status);
index dd8be75..9862391 100644 (file)
@@ -86,6 +86,10 @@ s32 ixgbe_init_ops_X550(struct ixgbe_hw *hw)
        /* Manageability interface */
        mac->ops.set_fw_drv_ver = ixgbe_set_fw_drv_ver_x550;
        switch (hw->device_id) {
+       case IXGBE_DEV_ID_X550EM_X_1G_T:
+               hw->mac.ops.led_on = NULL;
+               hw->mac.ops.led_off = NULL;
+               break;
        case IXGBE_DEV_ID_X550EM_X_10G_T:
        case IXGBE_DEV_ID_X550EM_A_10G_T:
                hw->mac.ops.led_on = ixgbe_led_on_t_X550em;
@@ -957,6 +961,7 @@ s32 ixgbe_init_ops_X550EM_x(struct ixgbe_hw *hw)
        if (hw->device_id == IXGBE_DEV_ID_X550EM_X_1G_T) {
                mac->ops.setup_fc = NULL;
                mac->ops.setup_eee = NULL;
+               mac->ops.init_led_link_act = NULL;
        }
 
        return ret_val;
@@ -2425,6 +2430,7 @@ s32 ixgbe_init_phy_ops_X550em(struct ixgbe_hw *hw)
        case ixgbe_phy_ext_1g_t:
                /* link is managed by FW */
                phy->ops.setup_link = NULL;
+               phy->ops.reset = NULL;
                break;
        case ixgbe_phy_x550em_xfi:
                /* link is managed by HW */