[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1543479131-14097-1-git-send-email-hayashi.kunihiko@socionext.com>
Date: Thu, 29 Nov 2018 17:12:11 +0900
From: Kunihiko Hayashi <hayashi.kunihiko@...ionext.com>
To: Andrew Lunn <andrew@...n.ch>,
Florian Fainelli <f.fainelli@...il.com>,
Heiner Kallweit <hkallweit1@...il.com>,
"David S. Miller" <davem@...emloft.net>
Cc: netdev@...r.kernel.org, linux-kernel@...r.kernel.org,
Kunihiko Hayashi <hayashi.kunihiko@...ionext.com>
Subject: [RFC PATCH net] net: phy: fix the issue that netif always links up after resuming
Even though the link is down before entering hibernation,
there is an issue that the network interface always links up after resuming
from hibernation.
The phydev->state is PHY_READY before enabling the network interface, so
the link is down. After resuming from hibernation, the phydev->state is
forcibly set to PHY_UP in mdio_bus_phy_restore(), and the link becomes up.
This patch expects to solve the issue by changing phydev->state to PHY_UP
only when the link is up.
Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@...ionext.com>
---
drivers/net/phy/phy_device.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
index ab33d17..d5bba0f 100644
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -309,8 +309,10 @@ static int mdio_bus_phy_restore(struct device *dev)
return ret;
/* The PHY needs to renegotiate. */
- phydev->link = 0;
- phydev->state = PHY_UP;
+ if (phydev->link) {
+ phydev->link = 0;
+ phydev->state = PHY_UP;
+ }
phy_start_machine(phydev);
--
2.7.4
Powered by blists - more mailing lists