diff options
Diffstat (limited to 'drivers/net/ethernet/broadcom/bnx2x')
-rw-r--r-- | drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h | 1 | ||||
-rw-r--r-- | drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c | 20 |
2 files changed, 18 insertions, 3 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h index 32767f6aa33f..cf1df8b62e2c 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h | |||
@@ -172,6 +172,7 @@ struct shared_hw_cfg { /* NVRAM Offset */ | |||
172 | #define SHARED_HW_CFG_LED_MAC4 0x000c0000 | 172 | #define SHARED_HW_CFG_LED_MAC4 0x000c0000 |
173 | #define SHARED_HW_CFG_LED_PHY8 0x000d0000 | 173 | #define SHARED_HW_CFG_LED_PHY8 0x000d0000 |
174 | #define SHARED_HW_CFG_LED_EXTPHY1 0x000e0000 | 174 | #define SHARED_HW_CFG_LED_EXTPHY1 0x000e0000 |
175 | #define SHARED_HW_CFG_LED_EXTPHY2 0x000f0000 | ||
175 | 176 | ||
176 | 177 | ||
177 | #define SHARED_HW_CFG_AN_ENABLE_MASK 0x3f000000 | 178 | #define SHARED_HW_CFG_AN_ENABLE_MASK 0x3f000000 |
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c index 92112e242f7f..c60cf43eea08 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c | |||
@@ -6344,9 +6344,15 @@ int bnx2x_set_led(struct link_params *params, | |||
6344 | * intended override. | 6344 | * intended override. |
6345 | */ | 6345 | */ |
6346 | break; | 6346 | break; |
6347 | } else | 6347 | } else { |
6348 | u32 nig_led_mode = ((params->hw_led_mode << | ||
6349 | SHARED_HW_CFG_LED_MODE_SHIFT) == | ||
6350 | SHARED_HW_CFG_LED_EXTPHY2) ? | ||
6351 | (SHARED_HW_CFG_LED_PHY1 >> | ||
6352 | SHARED_HW_CFG_LED_MODE_SHIFT) : hw_led_mode; | ||
6348 | REG_WR(bp, NIG_REG_LED_MODE_P0 + port*4, | 6353 | REG_WR(bp, NIG_REG_LED_MODE_P0 + port*4, |
6349 | hw_led_mode); | 6354 | nig_led_mode); |
6355 | } | ||
6350 | 6356 | ||
6351 | REG_WR(bp, NIG_REG_LED_CONTROL_OVERRIDE_TRAFFIC_P0 + port*4, 0); | 6357 | REG_WR(bp, NIG_REG_LED_CONTROL_OVERRIDE_TRAFFIC_P0 + port*4, 0); |
6352 | /* Set blinking rate to ~15.9Hz */ | 6358 | /* Set blinking rate to ~15.9Hz */ |
@@ -10608,10 +10614,18 @@ static void bnx2x_848xx_set_link_led(struct bnx2x_phy *phy, | |||
10608 | 0x40); | 10614 | 0x40); |
10609 | 10615 | ||
10610 | } else { | 10616 | } else { |
10617 | /* EXTPHY2 LED mode indicate that the 100M/1G/10G LED | ||
10618 | * sources are all wired through LED1, rather than only | ||
10619 | * 10G in other modes. | ||
10620 | */ | ||
10621 | val = ((params->hw_led_mode << | ||
10622 | SHARED_HW_CFG_LED_MODE_SHIFT) == | ||
10623 | SHARED_HW_CFG_LED_EXTPHY2) ? 0x98 : 0x80; | ||
10624 | |||
10611 | bnx2x_cl45_write(bp, phy, | 10625 | bnx2x_cl45_write(bp, phy, |
10612 | MDIO_PMA_DEVAD, | 10626 | MDIO_PMA_DEVAD, |
10613 | MDIO_PMA_REG_8481_LED1_MASK, | 10627 | MDIO_PMA_REG_8481_LED1_MASK, |
10614 | 0x80); | 10628 | val); |
10615 | 10629 | ||
10616 | /* Tell LED3 to blink on source */ | 10630 | /* Tell LED3 to blink on source */ |
10617 | bnx2x_cl45_read(bp, phy, | 10631 | bnx2x_cl45_read(bp, phy, |