bnx2x: 1G LED does not turn off
1G LED does not turn off The 1G LED was not switched to off when the link was lost Signed-off-by: Eilon Greenstein <eilong@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
6bbca910e6
commit
345b5d52b9
@@ -120,6 +120,7 @@
|
|||||||
#define SHMEM_RD(bp, field) REG_RD(bp, SHMEM_ADDR(bp, field))
|
#define SHMEM_RD(bp, field) REG_RD(bp, SHMEM_ADDR(bp, field))
|
||||||
#define SHMEM_WR(bp, field, val) REG_WR(bp, SHMEM_ADDR(bp, field), val)
|
#define SHMEM_WR(bp, field, val) REG_WR(bp, SHMEM_ADDR(bp, field), val)
|
||||||
|
|
||||||
|
#define EMAC_RD(bp, reg) REG_RD(bp, emac_base + reg)
|
||||||
#define NIG_WR(reg, val) REG_WR(bp, reg, val)
|
#define NIG_WR(reg, val) REG_WR(bp, reg, val)
|
||||||
#define EMAC_WR(reg, val) REG_WR(bp, emac_base + reg, val)
|
#define EMAC_WR(reg, val) REG_WR(bp, emac_base + reg, val)
|
||||||
#define BMAC_WR(reg, val) REG_WR(bp, GRCBASE_NIG + bmac_addr + reg, val)
|
#define BMAC_WR(reg, val) REG_WR(bp, GRCBASE_NIG + bmac_addr + reg, val)
|
||||||
|
@@ -3769,6 +3769,8 @@ u8 bnx2x_set_led(struct bnx2x *bp, u8 port, u8 mode, u32 speed,
|
|||||||
u16 hw_led_mode, u32 chip_id)
|
u16 hw_led_mode, u32 chip_id)
|
||||||
{
|
{
|
||||||
u8 rc = 0;
|
u8 rc = 0;
|
||||||
|
u32 tmp;
|
||||||
|
u32 emac_base = port ? GRCBASE_EMAC1 : GRCBASE_EMAC0;
|
||||||
DP(NETIF_MSG_LINK, "bnx2x_set_led: port %x, mode %d\n", port, mode);
|
DP(NETIF_MSG_LINK, "bnx2x_set_led: port %x, mode %d\n", port, mode);
|
||||||
DP(NETIF_MSG_LINK, "speed 0x%x, hw_led_mode 0x%x\n",
|
DP(NETIF_MSG_LINK, "speed 0x%x, hw_led_mode 0x%x\n",
|
||||||
speed, hw_led_mode);
|
speed, hw_led_mode);
|
||||||
@@ -3777,6 +3779,9 @@ u8 bnx2x_set_led(struct bnx2x *bp, u8 port, u8 mode, u32 speed,
|
|||||||
REG_WR(bp, NIG_REG_LED_10G_P0 + port*4, 0);
|
REG_WR(bp, NIG_REG_LED_10G_P0 + port*4, 0);
|
||||||
REG_WR(bp, NIG_REG_LED_MODE_P0 + port*4,
|
REG_WR(bp, NIG_REG_LED_MODE_P0 + port*4,
|
||||||
SHARED_HW_CFG_LED_MAC1);
|
SHARED_HW_CFG_LED_MAC1);
|
||||||
|
|
||||||
|
tmp = EMAC_RD(bp, EMAC_REG_EMAC_LED);
|
||||||
|
EMAC_WR(EMAC_REG_EMAC_LED, (tmp | EMAC_LED_OVERRIDE));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LED_MODE_OPER:
|
case LED_MODE_OPER:
|
||||||
@@ -3788,6 +3793,10 @@ u8 bnx2x_set_led(struct bnx2x *bp, u8 port, u8 mode, u32 speed,
|
|||||||
LED_BLINK_RATE_VAL);
|
LED_BLINK_RATE_VAL);
|
||||||
REG_WR(bp, NIG_REG_LED_CONTROL_BLINK_RATE_ENA_P0 +
|
REG_WR(bp, NIG_REG_LED_CONTROL_BLINK_RATE_ENA_P0 +
|
||||||
port*4, 1);
|
port*4, 1);
|
||||||
|
tmp = EMAC_RD(bp, EMAC_REG_EMAC_LED);
|
||||||
|
EMAC_WR(EMAC_REG_EMAC_LED,
|
||||||
|
(tmp & (~EMAC_LED_OVERRIDE)));
|
||||||
|
|
||||||
if (!CHIP_IS_E1H(bp) &&
|
if (!CHIP_IS_E1H(bp) &&
|
||||||
((speed == SPEED_2500) ||
|
((speed == SPEED_2500) ||
|
||||||
(speed == SPEED_1000) ||
|
(speed == SPEED_1000) ||
|
||||||
|
Reference in New Issue
Block a user