diff options
Diffstat (limited to 'drivers/net/ethernet/broadcom')
-rw-r--r-- | drivers/net/ethernet/broadcom/b44.c | 2 | ||||
-rw-r--r-- | drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c | 39 | ||||
-rw-r--r-- | drivers/net/ethernet/broadcom/bnx2x/bnx2x_reg.h | 1 |
3 files changed, 40 insertions, 2 deletions
diff --git a/drivers/net/ethernet/broadcom/b44.c b/drivers/net/ethernet/broadcom/b44.c index 4cf835dbc122..3fb66d09ece5 100644 --- a/drivers/net/ethernet/broadcom/b44.c +++ b/drivers/net/ethernet/broadcom/b44.c | |||
@@ -608,7 +608,7 @@ static void b44_tx(struct b44 *bp) | |||
608 | skb->len, | 608 | skb->len, |
609 | DMA_TO_DEVICE); | 609 | DMA_TO_DEVICE); |
610 | rp->skb = NULL; | 610 | rp->skb = NULL; |
611 | dev_kfree_skb(skb); | 611 | dev_kfree_skb_irq(skb); |
612 | } | 612 | } |
613 | 613 | ||
614 | bp->tx_cons = cons; | 614 | bp->tx_cons = cons; |
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c index bce203fa4b9e..882f48f0a03c 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c | |||
@@ -10327,6 +10327,43 @@ static int bnx2x_54618se_config_init(struct bnx2x_phy *phy, | |||
10327 | return 0; | 10327 | return 0; |
10328 | } | 10328 | } |
10329 | 10329 | ||
10330 | |||
10331 | static void bnx2x_5461x_set_link_led(struct bnx2x_phy *phy, | ||
10332 | struct link_params *params, u8 mode) | ||
10333 | { | ||
10334 | struct bnx2x *bp = params->bp; | ||
10335 | u16 temp; | ||
10336 | |||
10337 | bnx2x_cl22_write(bp, phy, | ||
10338 | MDIO_REG_GPHY_SHADOW, | ||
10339 | MDIO_REG_GPHY_SHADOW_LED_SEL1); | ||
10340 | bnx2x_cl22_read(bp, phy, | ||
10341 | MDIO_REG_GPHY_SHADOW, | ||
10342 | &temp); | ||
10343 | temp &= 0xff00; | ||
10344 | |||
10345 | DP(NETIF_MSG_LINK, "54618x set link led (mode=%x)\n", mode); | ||
10346 | switch (mode) { | ||
10347 | case LED_MODE_FRONT_PANEL_OFF: | ||
10348 | case LED_MODE_OFF: | ||
10349 | temp |= 0x00ee; | ||
10350 | break; | ||
10351 | case LED_MODE_OPER: | ||
10352 | temp |= 0x0001; | ||
10353 | break; | ||
10354 | case LED_MODE_ON: | ||
10355 | temp |= 0x00ff; | ||
10356 | break; | ||
10357 | default: | ||
10358 | break; | ||
10359 | } | ||
10360 | bnx2x_cl22_write(bp, phy, | ||
10361 | MDIO_REG_GPHY_SHADOW, | ||
10362 | MDIO_REG_GPHY_SHADOW_WR_ENA | temp); | ||
10363 | return; | ||
10364 | } | ||
10365 | |||
10366 | |||
10330 | static void bnx2x_54618se_link_reset(struct bnx2x_phy *phy, | 10367 | static void bnx2x_54618se_link_reset(struct bnx2x_phy *phy, |
10331 | struct link_params *params) | 10368 | struct link_params *params) |
10332 | { | 10369 | { |
@@ -11103,7 +11140,7 @@ static struct bnx2x_phy phy_54618se = { | |||
11103 | .config_loopback = (config_loopback_t)bnx2x_54618se_config_loopback, | 11140 | .config_loopback = (config_loopback_t)bnx2x_54618se_config_loopback, |
11104 | .format_fw_ver = (format_fw_ver_t)NULL, | 11141 | .format_fw_ver = (format_fw_ver_t)NULL, |
11105 | .hw_reset = (hw_reset_t)NULL, | 11142 | .hw_reset = (hw_reset_t)NULL, |
11106 | .set_link_led = (set_link_led_t)NULL, | 11143 | .set_link_led = (set_link_led_t)bnx2x_5461x_set_link_led, |
11107 | .phy_specific_func = (phy_specific_func_t)NULL | 11144 | .phy_specific_func = (phy_specific_func_t)NULL |
11108 | }; | 11145 | }; |
11109 | /*****************************************************************/ | 11146 | /*****************************************************************/ |
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_reg.h b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_reg.h index fc7bd0f23c0b..e58073ef33b4 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_reg.h +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_reg.h | |||
@@ -6990,6 +6990,7 @@ Theotherbitsarereservedandshouldbezero*/ | |||
6990 | #define MDIO_REG_INTR_MASK 0x1b | 6990 | #define MDIO_REG_INTR_MASK 0x1b |
6991 | #define MDIO_REG_INTR_MASK_LINK_STATUS (0x1 << 1) | 6991 | #define MDIO_REG_INTR_MASK_LINK_STATUS (0x1 << 1) |
6992 | #define MDIO_REG_GPHY_SHADOW 0x1c | 6992 | #define MDIO_REG_GPHY_SHADOW 0x1c |
6993 | #define MDIO_REG_GPHY_SHADOW_LED_SEL1 (0x0d << 10) | ||
6993 | #define MDIO_REG_GPHY_SHADOW_LED_SEL2 (0x0e << 10) | 6994 | #define MDIO_REG_GPHY_SHADOW_LED_SEL2 (0x0e << 10) |
6994 | #define MDIO_REG_GPHY_SHADOW_WR_ENA (0x1 << 15) | 6995 | #define MDIO_REG_GPHY_SHADOW_WR_ENA (0x1 << 15) |
6995 | #define MDIO_REG_GPHY_SHADOW_AUTO_DET_MED (0x1e << 10) | 6996 | #define MDIO_REG_GPHY_SHADOW_AUTO_DET_MED (0x1e << 10) |