Re: [PATCH v3 3/3] net: phy: realtek: Disable clock on suspend

From: Florian Fainelli
Date: Mon Jun 05 2023 - 11:27:24 EST


On 6/5/23 08:19, Detlev Casanova wrote:
For PHYs that call rtl821x_probe() where an external clock can be
configured, make sure that the clock is disabled
when ->suspend() is called and enabled on resume.

The PHY_ALWAYS_CALL_SUSPEND is added to ensure that the suspend function
is actually always called.

Reviewed-by: Florian Fainelli <florian.fainelli@xxxxxxxxxxxx>
Signed-off-by: Detlev Casanova <detlev.casanova@xxxxxxxxxxxxx>
---
drivers/net/phy/realtek.c | 24 ++++++++++++++++++++++--
1 file changed, 22 insertions(+), 2 deletions(-)

diff --git a/drivers/net/phy/realtek.c b/drivers/net/phy/realtek.c
index b13dd0b3c99e..62eac4835def 100644
--- a/drivers/net/phy/realtek.c
+++ b/drivers/net/phy/realtek.c
@@ -426,10 +426,28 @@ static int rtl8211f_config_init(struct phy_device *phydev)
return genphy_soft_reset(phydev);
}
+static int rtl821x_suspend(struct phy_device *phydev)
+{
+ struct rtl821x_priv *priv = phydev->priv;
+ int ret = genphy_suspend(phydev);

Sorry I missed that part, if Wake-on-LAN is enabled you cannot suspend the PHY as this will typically prevent it from passing received frames up the MAC where Wake-on-LAN can be done. You need to move genphy_suspend() into the !phydev->wol_enabled clause.
--
Florian