diff options
author | Florian Fainelli <f.fainelli@gmail.com> | 2017-03-15 15:57:21 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-03-30 03:41:20 -0400 |
commit | 4d5bc781eb2ced756b83f897f26920cd2a58484e (patch) | |
tree | c4654e0b9584ac3928a5f56b968c63d00b5113d7 | |
parent | 03e9554ac48f7899037a2921da24dd2da0f51c0e (diff) |
net: bcmgenet: Do not suspend PHY if Wake-on-LAN is enabled
[ Upstream commit 5371bbf4b295eea334ed453efa286afa2c3ccff3 ]
Suspending the PHY would be putting it in a low power state where it
may no longer allow us to do Wake-on-LAN.
Fixes: cc013fb48898 ("net: bcmgenet: correctly suspend and resume PHY device")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/net/ethernet/broadcom/genet/bcmgenet.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c index a4e60e56c14f..0975af2903ef 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c | |||
@@ -3402,7 +3402,8 @@ static int bcmgenet_suspend(struct device *d) | |||
3402 | 3402 | ||
3403 | bcmgenet_netif_stop(dev); | 3403 | bcmgenet_netif_stop(dev); |
3404 | 3404 | ||
3405 | phy_suspend(priv->phydev); | 3405 | if (!device_may_wakeup(d)) |
3406 | phy_suspend(priv->phydev); | ||
3406 | 3407 | ||
3407 | netif_device_detach(dev); | 3408 | netif_device_detach(dev); |
3408 | 3409 | ||
@@ -3499,7 +3500,8 @@ static int bcmgenet_resume(struct device *d) | |||
3499 | 3500 | ||
3500 | netif_device_attach(dev); | 3501 | netif_device_attach(dev); |
3501 | 3502 | ||
3502 | phy_resume(priv->phydev); | 3503 | if (!device_may_wakeup(d)) |
3504 | phy_resume(priv->phydev); | ||
3503 | 3505 | ||
3504 | if (priv->eee.eee_enabled) | 3506 | if (priv->eee.eee_enabled) |
3505 | bcmgenet_eee_enable_set(dev, true); | 3507 | bcmgenet_eee_enable_set(dev, true); |