OSDN Git Service

i40e: Blink LED on 1G BaseT boards
authorHenry Tieman <henry.w.tieman@intel.com>
Tue, 8 Nov 2016 21:05:18 +0000 (13:05 -0800)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Wed, 7 Dec 2016 04:49:29 +0000 (20:49 -0800)
Before this patch "ethtool -p" was not blinking the LEDs on boards
with 1G BaseT PHYs.

This commit identifies 1G BaseT boards as having the LEDs connected
to the MAC. Also, renamed the flag to be more descriptive of usage.
The flag is now I40E_FLAG_PHY_CONTROLS_LEDS.

Change-ID: I4eb741da9780da7849ddf2dc4c0cb27ffa42a801
Signed-off-by: Henry Tieman <henry.w.tieman@intel.com>
Signed-off-by: Harshitha Ramamurthy <harshitha.ramamurthy@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/i40e/i40e.h
drivers/net/ethernet/intel/i40e/i40e_ethtool.c
drivers/net/ethernet/intel/i40e/i40e_main.c

index 06e3c23..b8f2978 100644 (file)
@@ -356,7 +356,7 @@ struct i40e_pf {
 #define I40E_FLAG_NO_DCB_SUPPORT               BIT_ULL(45)
 #define I40E_FLAG_USE_SET_LLDP_MIB             BIT_ULL(46)
 #define I40E_FLAG_STOP_FW_LLDP                 BIT_ULL(47)
-#define I40E_FLAG_HAVE_10GBASET_PHY            BIT_ULL(48)
+#define I40E_FLAG_PHY_CONTROLS_LEDS            BIT_ULL(48)
 #define I40E_FLAG_PF_MAC                       BIT_ULL(50)
 #define I40E_FLAG_TRUE_PROMISC_SUPPORT         BIT_ULL(51)
 #define I40E_FLAG_HAVE_CRT_RETIMER             BIT_ULL(52)
index 76753e1..6ba0035 100644 (file)
@@ -1890,7 +1890,7 @@ static int i40e_set_phys_id(struct net_device *netdev,
 
        switch (state) {
        case ETHTOOL_ID_ACTIVE:
-               if (!(pf->flags & I40E_FLAG_HAVE_10GBASET_PHY)) {
+               if (!(pf->flags & I40E_FLAG_PHY_CONTROLS_LEDS)) {
                        pf->led_status = i40e_led_get(hw);
                } else {
                        i40e_aq_set_phy_debug(hw, I40E_PHY_DEBUG_ALL, NULL);
@@ -1900,20 +1900,20 @@ static int i40e_set_phys_id(struct net_device *netdev,
                }
                return blink_freq;
        case ETHTOOL_ID_ON:
-               if (!(pf->flags & I40E_FLAG_HAVE_10GBASET_PHY))
+               if (!(pf->flags & I40E_FLAG_PHY_CONTROLS_LEDS))
                        i40e_led_set(hw, 0xf, false);
                else
                        ret = i40e_led_set_phy(hw, true, pf->led_status, 0);
                break;
        case ETHTOOL_ID_OFF:
-               if (!(pf->flags & I40E_FLAG_HAVE_10GBASET_PHY))
+               if (!(pf->flags & I40E_FLAG_PHY_CONTROLS_LEDS))
                        i40e_led_set(hw, 0x0, false);
                else
                        ret = i40e_led_set_phy(hw, false, pf->led_status, 0);
                break;
        case ETHTOOL_ID_INACTIVE:
-               if (!(pf->flags & I40E_FLAG_HAVE_10GBASET_PHY)) {
-                       i40e_led_set(hw, false, pf->led_status);
+               if (!(pf->flags & I40E_FLAG_PHY_CONTROLS_LEDS)) {
+                       i40e_led_set(hw, pf->led_status, false);
                } else {
                        ret = i40e_led_set_phy(hw, false, pf->led_status,
                                               (pf->phy_led_val |
index ae4a2b2..dbb854b 100644 (file)
@@ -11380,8 +11380,8 @@ static int i40e_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
                                                       pf->main_vsi_seid);
 
        if ((pf->hw.device_id == I40E_DEV_ID_10G_BASE_T) ||
-           (pf->hw.device_id == I40E_DEV_ID_10G_BASE_T4))
-               pf->flags |= I40E_FLAG_HAVE_10GBASET_PHY;
+               (pf->hw.device_id == I40E_DEV_ID_10G_BASE_T4))
+               pf->flags |= I40E_FLAG_PHY_CONTROLS_LEDS;
        if (pf->hw.device_id == I40E_DEV_ID_SFP_I_X722)
                pf->flags |= I40E_FLAG_HAVE_CRT_RETIMER;
        /* print a string summarizing features */