diff options
author | Florian Fainelli <f.fainelli@gmail.com> | 2015-10-30 04:11:35 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-11-01 23:54:50 +0300 |
commit | 5dbebbb44a6ad94aab2cd1a46f7676f255403f64 (patch) | |
tree | 03935cc66e724ca53a2357a705ef177a8c78999a /drivers/net/ethernet/broadcom/genet/bcmgenet.c | |
parent | b43c142f22236b37aa68faf23ac1bbd75f94c5b5 (diff) | |
download | linux-5dbebbb44a6ad94aab2cd1a46f7676f255403f64.tar.xz |
net: bcmgenet: Software reset EPHY after power on
The EPHY on GENET v1->v3 is extremely finicky, and will show occasional
failures based on the timing and reset sequence, ranging from duplicate
packets, to extremely high latencies.
Perform an additional software reset, and re-configuration to make sure it is
in a consistent and working state.
Fixes: 6ac3ce8295e6 ("net: bcmgenet: Remove excessive PHY reset")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/broadcom/genet/bcmgenet.c')
-rw-r--r-- | drivers/net/ethernet/broadcom/genet/bcmgenet.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c index 1805541b4240..5e3cd76cb69b 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -907,8 +907,10 @@ static void bcmgenet_power_up(struct bcmgenet_priv *priv, } bcmgenet_ext_writel(priv, reg, EXT_EXT_PWR_MGMT); - if (mode == GENET_POWER_PASSIVE) + if (mode == GENET_POWER_PASSIVE) { bcmgenet_phy_power_set(priv->dev, true); + bcmgenet_mii_reset(priv->dev); + } } /* ioctl handle special commands that are not present in ethtool. */ |