i40e: Fix for 10G ports LED not blinking
On some hardware LEDs would not blink after command 'ethtool -p {eth-port}' in certain circumstances. Now, function does not care about the activity of the LED (though still preserves its state) but forcibly executes identification blinking and then restores the LED state. Signed-off-by: Piotr Marczak <piotr.marczak@intel.com> Tested-by: Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
bf4bf09bdd
commit
2622133173
|
@ -1466,7 +1466,6 @@ static u32 i40e_led_is_mine(struct i40e_hw *hw, int idx)
|
|||
**/
|
||||
u32 i40e_led_get(struct i40e_hw *hw)
|
||||
{
|
||||
u32 current_mode = 0;
|
||||
u32 mode = 0;
|
||||
int i;
|
||||
|
||||
|
@ -1479,21 +1478,6 @@ u32 i40e_led_get(struct i40e_hw *hw)
|
|||
if (!gpio_val)
|
||||
continue;
|
||||
|
||||
/* ignore gpio LED src mode entries related to the activity
|
||||
* LEDs
|
||||
*/
|
||||
current_mode = ((gpio_val & I40E_GLGEN_GPIO_CTL_LED_MODE_MASK)
|
||||
>> I40E_GLGEN_GPIO_CTL_LED_MODE_SHIFT);
|
||||
switch (current_mode) {
|
||||
case I40E_COMBINED_ACTIVITY:
|
||||
case I40E_FILTER_ACTIVITY:
|
||||
case I40E_MAC_ACTIVITY:
|
||||
case I40E_LINK_ACTIVITY:
|
||||
continue;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
mode = (gpio_val & I40E_GLGEN_GPIO_CTL_LED_MODE_MASK) >>
|
||||
I40E_GLGEN_GPIO_CTL_LED_MODE_SHIFT;
|
||||
break;
|
||||
|
@ -1513,7 +1497,6 @@ u32 i40e_led_get(struct i40e_hw *hw)
|
|||
**/
|
||||
void i40e_led_set(struct i40e_hw *hw, u32 mode, bool blink)
|
||||
{
|
||||
u32 current_mode = 0;
|
||||
int i;
|
||||
|
||||
if (mode & 0xfffffff0)
|
||||
|
@ -1527,22 +1510,6 @@ void i40e_led_set(struct i40e_hw *hw, u32 mode, bool blink)
|
|||
|
||||
if (!gpio_val)
|
||||
continue;
|
||||
|
||||
/* ignore gpio LED src mode entries related to the activity
|
||||
* LEDs
|
||||
*/
|
||||
current_mode = ((gpio_val & I40E_GLGEN_GPIO_CTL_LED_MODE_MASK)
|
||||
>> I40E_GLGEN_GPIO_CTL_LED_MODE_SHIFT);
|
||||
switch (current_mode) {
|
||||
case I40E_COMBINED_ACTIVITY:
|
||||
case I40E_FILTER_ACTIVITY:
|
||||
case I40E_MAC_ACTIVITY:
|
||||
case I40E_LINK_ACTIVITY:
|
||||
continue;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
gpio_val &= ~I40E_GLGEN_GPIO_CTL_LED_MODE_MASK;
|
||||
/* this & is a bit of paranoia, but serves as a range check */
|
||||
gpio_val |= ((mode << I40E_GLGEN_GPIO_CTL_LED_MODE_SHIFT) &
|
||||
|
|
Loading…
Reference in New Issue