net: bcmgenet: Do not suspend PHY if Wake-on-LAN is enabled
authorFlorian Fainelli <f.fainelli@gmail.com>
Wed, 15 Mar 2017 19:57:21 +0000 (12:57 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 15 Mar 2017 22:35:30 +0000 (15:35 -0700)
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>
drivers/net/ethernet/broadcom/genet/bcmgenet.c

index 69015fa50f2096c77999539179446e5ab38fa759..365895ed3c3e240584da21fad2caebc6384482d5 100644 (file)
@@ -3481,7 +3481,8 @@ static int bcmgenet_suspend(struct device *d)
 
        bcmgenet_netif_stop(dev);
 
-       phy_suspend(priv->phydev);
+       if (!device_may_wakeup(d))
+               phy_suspend(priv->phydev);
 
        netif_device_detach(dev);
 
@@ -3578,7 +3579,8 @@ static int bcmgenet_resume(struct device *d)
 
        netif_device_attach(dev);
 
-       phy_resume(priv->phydev);
+       if (!device_may_wakeup(d))
+               phy_resume(priv->phydev);
 
        if (priv->eee.eee_enabled)
                bcmgenet_eee_enable_set(dev, true);