diff options
author | Florian Fainelli <f.fainelli@gmail.com> | 2014-11-10 18:06:20 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-11-11 18:23:23 -0500 |
commit | c96e731c93ff0c9f53442c11c68e50fd07929d27 (patch) | |
tree | d3eafd8dd781b00ee660406be1143a94df87e87f /drivers/net/ethernet/broadcom/genet/bcmmii.c | |
parent | 93ecd2607f55f99ec0022f53f8224566c8ec797f (diff) | |
download | op-kernel-dev-c96e731c93ff0c9f53442c11c68e50fd07929d27.zip op-kernel-dev-c96e731c93ff0c9f53442c11c68e50fd07929d27.tar.gz |
net: bcmgenet: connect and disconnect from the PHY state machine
phy_disconnect() is the only way to guarantee that we are not going to
schedule more work on the PHY state machine workqueue for that
particular PHY device.
This fixes an issue where a network interface was suspended prior to a
system suspend/resume cycle and would then be resumed as part of
mdio_bus_resume(), since the GENET interface clocks would have been
disabled, this basically resulted in bus errors to appear since we are
invoking the GENET driver adjust_link() callback.
Fixes: b6e978e50444 ("net: bcmgenet: add suspend/resume callbacks")
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/bcmmii.c')
-rw-r--r-- | drivers/net/ethernet/broadcom/genet/bcmmii.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/ethernet/broadcom/genet/bcmmii.c b/drivers/net/ethernet/broadcom/genet/bcmmii.c index 9ff799a..9c5fee7 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmmii.c +++ b/drivers/net/ethernet/broadcom/genet/bcmmii.c @@ -77,7 +77,7 @@ static int bcmgenet_mii_write(struct mii_bus *bus, int phy_id, /* setup netdev link state when PHY link status change and * update UMAC and RGMII block when link up */ -static void bcmgenet_mii_setup(struct net_device *dev) +void bcmgenet_mii_setup(struct net_device *dev) { struct bcmgenet_priv *priv = netdev_priv(dev); struct phy_device *phydev = priv->phydev; |