bnx2x: Fix LED behavior
This fix resolve two problems seen regarding LED: 1. LED doesn't flash during port identification. 2. Traffic LED sometimes do not blink. Signed-off-by: Yaniv Rosner <yanivr@broadcom.com> Signed-off-by: Eilon Greenstein <eilong@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
157fa283a7
commit
793bd45037
|
@ -5922,20 +5922,30 @@ int bnx2x_set_led(struct link_params *params,
|
|||
tmp = EMAC_RD(bp, EMAC_REG_EMAC_LED);
|
||||
EMAC_WR(bp, EMAC_REG_EMAC_LED,
|
||||
(tmp | EMAC_LED_OVERRIDE));
|
||||
return rc;
|
||||
/*
|
||||
* return here without enabling traffic
|
||||
* LED blink andsetting rate in ON mode.
|
||||
* In oper mode, enabling LED blink
|
||||
* and setting rate is needed.
|
||||
*/
|
||||
if (mode == LED_MODE_ON)
|
||||
return rc;
|
||||
}
|
||||
} else if (SINGLE_MEDIA_DIRECT(params) &&
|
||||
(CHIP_IS_E1x(bp) ||
|
||||
CHIP_IS_E2(bp))) {
|
||||
} else if (SINGLE_MEDIA_DIRECT(params)) {
|
||||
/*
|
||||
* This is a work-around for HW issue found when link
|
||||
* is up in CL73
|
||||
*/
|
||||
REG_WR(bp, NIG_REG_LED_MODE_P0 + port*4, 0);
|
||||
REG_WR(bp, NIG_REG_LED_10G_P0 + port*4, 1);
|
||||
} else {
|
||||
if (CHIP_IS_E1x(bp) ||
|
||||
CHIP_IS_E2(bp) ||
|
||||
(mode == LED_MODE_ON))
|
||||
REG_WR(bp, NIG_REG_LED_MODE_P0 + port*4, 0);
|
||||
else
|
||||
REG_WR(bp, NIG_REG_LED_MODE_P0 + port*4,
|
||||
hw_led_mode);
|
||||
} else
|
||||
REG_WR(bp, NIG_REG_LED_MODE_P0 + port*4, hw_led_mode);
|
||||
}
|
||||
|
||||
REG_WR(bp, NIG_REG_LED_CONTROL_OVERRIDE_TRAFFIC_P0 + port*4, 0);
|
||||
/* Set blinking rate to ~15.9Hz */
|
||||
|
|
Loading…
Reference in New Issue