diff options
author | Eilon Greenstein <eilong@broadcom.com> | 2009-02-12 11:37:04 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-02-16 10:31:33 +0300 |
commit | 811a2f2d3be9a39bd4e0930501fda8630857748d (patch) | |
tree | ab00cd6bcc94c0cc270a747288d311b612077a87 | |
parent | a35da8dbf1ff403633bb6256fba691b224f17f61 (diff) | |
download | linux-811a2f2d3be9a39bd4e0930501fda8630857748d.tar.xz |
bnx2x: EMAC reset
The NIG_ENABLE does not reset the emac. Replace it with explicit reset
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>
-rw-r--r-- | drivers/net/bnx2x_link.c | 6 | ||||
-rw-r--r-- | drivers/net/bnx2x_reg.h | 2 |
2 files changed, 6 insertions, 2 deletions
diff --git a/drivers/net/bnx2x_link.c b/drivers/net/bnx2x_link.c index ffa412f63c96..f4c699ecfb41 100644 --- a/drivers/net/bnx2x_link.c +++ b/drivers/net/bnx2x_link.c @@ -297,8 +297,10 @@ static u8 bnx2x_emac_enable(struct link_params *params, port*4, 0); } - /* enable emac */ - REG_WR(bp, NIG_REG_NIG_EMAC0_EN + port*4, 1); + bnx2x_bits_en(bp, emac_base + EMAC_REG_EMAC_RX_MODE, + EMAC_RX_MODE_RESET); + bnx2x_bits_en(bp, emac_base + EMAC_REG_EMAC_TX_MODE, + EMAC_TX_MODE_RESET); if (CHIP_REV_IS_SLOW(bp)) { /* config GMII mode */ diff --git a/drivers/net/bnx2x_reg.h b/drivers/net/bnx2x_reg.h index 5cfeac96ea69..b6c924934a00 100644 --- a/drivers/net/bnx2x_reg.h +++ b/drivers/net/bnx2x_reg.h @@ -5173,9 +5173,11 @@ #define EMAC_RX_MODE_FLOW_EN (1L<<2) #define EMAC_RX_MODE_KEEP_VLAN_TAG (1L<<10) #define EMAC_RX_MODE_PROMISCUOUS (1L<<8) +#define EMAC_RX_MODE_RESET (1L<<0) #define EMAC_RX_MTU_SIZE_JUMBO_ENA (1L<<31) #define EMAC_TX_MODE_EXT_PAUSE_EN (1L<<3) #define EMAC_TX_MODE_FLOW_EN (1L<<4) +#define EMAC_TX_MODE_RESET (1L<<0) #define MISC_REGISTERS_GPIO_0 0 #define MISC_REGISTERS_GPIO_1 1 #define MISC_REGISTERS_GPIO_2 2 |