bgmac: reset cached MAC state during chip reset
authorRafał Miłecki <zajec5@gmail.com>
Wed, 11 Dec 2013 06:44:14 +0000 (07:44 +0100)
committerDavid S. Miller <davem@davemloft.net>
Wed, 11 Dec 2013 18:40:48 +0000 (13:40 -0500)
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>
drivers/net/ethernet/broadcom/bgmac.c

index fd6a22e3dd7528ea464373bc7356fcc87fc2011f..273b9f97da492c4fcd34e1f517c8589ffaa205eb 100644 (file)
@@ -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)