Re: [PATCH v3 net] net: phy: micrel: Dynamically control external clock of KSZ PHY
From: Jakub Kicinski
Date: Tue Dec 10 2024 - 19:43:16 EST
On Tue, 10 Dec 2024 02:45:57 +0000 Wei Fang wrote:
> The simple fix could only fix the commit 985329462723 ("net: phy: micrel: use
> devm_clk_get_optional_enabled for the rmii-ref clock"), because as the commit
> message said some clock suppliers need to be enabled so that the driver can get
> the correct clock rate.
>
> But the problem is that the simple fix cannot fix the 99ac4cbcc2a5 ("net: phy:
> micrel: allow usage of generic ethernet-phy clock"). The change is as follows,
> this change just enables the clock when the PHY driver probes. There are no
> other operations on the clock, such as obtaining the clock rate. So you still think
> a simple fix is good enough for net tree?
I may be missing something but if you don't need to disable the generic
clock you can put the disable into the if () block for rmii-ref ?
diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c
index 3ef508840674..8bbd2018f2a6 100644
--- a/drivers/net/phy/micrel.c
+++ b/drivers/net/phy/micrel.c
@@ -2214,6 +2214,8 @@ static int kszphy_probe(struct phy_device *phydev)
rate);
return -EINVAL;
}
+
+ clk_disable_unprepare(clk);
} else if (!clk) {
/* unnamed clock from the generic ethernet-phy binding */
clk = devm_clk_get_optional_enabled(&phydev->mdio.dev, NULL);