summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/broadcom/bgmac.c
diff options
context:
space:
mode:
authorRafał Miłecki <zajec5@gmail.com>2013-12-11 07:44:14 +0100
committerDavid S. Miller <davem@davemloft.net>2013-12-11 19:40:48 +0100
commitd469962f858b71ec43112c256e3df4a60b00beeb (patch)
treeed01efa8052f6590e4664cc97fcd85b3e6ed8527 /drivers/net/ethernet/broadcom/bgmac.c
parentnet_sched: expand control flow of macro SKIP_NONLOCAL (diff)
downloadlinux-d469962f858b71ec43112c256e3df4a60b00beeb.tar.xz
linux-d469962f858b71ec43112c256e3df4a60b00beeb.zip
bgmac: reset cached MAC state during chip reset
Without this bgmac_adjust_link didn't know it should re-initialize MAC state. This led to the MAC not working after if down & up routine. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/broadcom/bgmac.c')
-rw-r--r--drivers/net/ethernet/broadcom/bgmac.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/ethernet/broadcom/bgmac.c b/drivers/net/ethernet/broadcom/bgmac.c
index fd6a22e3dd75..273b9f97da49 100644
--- a/drivers/net/ethernet/broadcom/bgmac.c
+++ b/drivers/net/ethernet/broadcom/bgmac.c
@@ -953,6 +953,8 @@ static void bgmac_chip_reset(struct bgmac *bgmac)
BGMAC_CMDCFG_CFE |
BGMAC_CMDCFG_SR,
false);
+ bgmac->mac_speed = SPEED_UNKNOWN;
+ bgmac->mac_duplex = DUPLEX_UNKNOWN;
bgmac_clear_mib(bgmac);
if (core->id.id == BCMA_CORE_4706_MAC_GBIT)