Message ID | 20240510065901.535124-1-m.szyprowski@samsung.com |
---|---|
State | New |
Headers | show |
Series | [v2] clk: samsung: Don't register clkdev lookup for the fixed rate clocks | expand |
Quoting Marek Szyprowski (2024-05-09 23:59:01) > Commit 4d11c62ca8d7 ("clkdev: report over-sized strings when creating > clkdev entries") revealed that clock lookup is registered for all fixed > clocks. The mentioned commit added a check if the registered name is not > too long. This fails for some clocks registered for Exynos542x SoCs family. > This lookup is a left-over from early common clock framework days, not > really needed nowadays, so remove it to avoid further issues. > > Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> > Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org> > Tested-by: Sam Protsenko <semen.protsenko@linaro.org> > --- Applied to clk-next
On 10.05.2024 08:59, Marek Szyprowski wrote: > Commit 4d11c62ca8d7 ("clkdev: report over-sized strings when creating > clkdev entries") revealed that clock lookup is registered for all fixed > clocks. The mentioned commit added a check if the registered name is not > too long. This fails for some clocks registered for Exynos542x SoCs family. > This lookup is a left-over from early common clock framework days, not > really needed nowadays, so remove it to avoid further issues. This commit causes a warning to appear during startup on Exynos 4x12: > [ 0.000000] exynos4_clk_register_finpll: failed to lookup parent clock xusbxti, assuming fin_pll clock frequency is 24MHz > [ 0.000000] Exynos4x12 clocks: sclk_apll = 400000000, sclk_mpll = 800000000 > sclk_epll = 96000000, sclk_vpll = 108000000, arm_clk = 800000000 The warning seems to come from exynos4_clk_register_finpll in drivers/clk/samsung/clk-exynos4.c, where clk_get fails with error code -2. Best regards Artur
On 18/07/2024 14:20, Artur Weber wrote: > On 10.05.2024 08:59, Marek Szyprowski wrote: >> Commit 4d11c62ca8d7 ("clkdev: report over-sized strings when creating >> clkdev entries") revealed that clock lookup is registered for all fixed >> clocks. The mentioned commit added a check if the registered name is not >> too long. This fails for some clocks registered for Exynos542x SoCs family. >> This lookup is a left-over from early common clock framework days, not >> really needed nowadays, so remove it to avoid further issues. > > This commit causes a warning to appear during startup on Exynos 4x12:> > > [ 0.000000] exynos4_clk_register_finpll: failed to lookup parent clock xusbxti, assuming fin_pll clock frequency is 24MHz > > [ 0.000000] Exynos4x12 clocks: sclk_apll = 400000000, sclk_mpll = 800000000 > > sclk_epll = 96000000, sclk_vpll = 108000000, arm_clk = 800000000 > > The warning seems to come from exynos4_clk_register_finpll in > drivers/clk/samsung/clk-exynos4.c, where clk_get fails with error code -2. Indeed, so clk_hw_register_clkdev() was needed for clk_get(). I have a fix for this. Best regards, Krzysztof
On 22/07/2024 08:26, Krzysztof Kozlowski wrote: > On 18/07/2024 14:20, Artur Weber wrote: >> On 10.05.2024 08:59, Marek Szyprowski wrote: >>> Commit 4d11c62ca8d7 ("clkdev: report over-sized strings when creating >>> clkdev entries") revealed that clock lookup is registered for all fixed >>> clocks. The mentioned commit added a check if the registered name is not >>> too long. This fails for some clocks registered for Exynos542x SoCs family. >>> This lookup is a left-over from early common clock framework days, not >>> really needed nowadays, so remove it to avoid further issues. >> >> This commit causes a warning to appear during startup on Exynos 4x12:> >> > [ 0.000000] exynos4_clk_register_finpll: failed to lookup parent clock xusbxti, assuming fin_pll clock frequency is 24MHz >> > [ 0.000000] Exynos4x12 clocks: sclk_apll = 400000000, sclk_mpll = 800000000 >> > sclk_epll = 96000000, sclk_vpll = 108000000, arm_clk = 800000000 >> >> The warning seems to come from exynos4_clk_register_finpll in >> drivers/clk/samsung/clk-exynos4.c, where clk_get fails with error code -2. > > > Indeed, so clk_hw_register_clkdev() was needed for clk_get(). I have a > fix for this. ... and of course thanks for the report! Best regards, Krzysztof
diff --git a/drivers/clk/samsung/clk.c b/drivers/clk/samsung/clk.c index b6701905f254..afa5760ed3a1 100644 --- a/drivers/clk/samsung/clk.c +++ b/drivers/clk/samsung/clk.c @@ -139,7 +139,7 @@ void __init samsung_clk_register_fixed_rate(struct samsung_clk_provider *ctx, unsigned int nr_clk) { struct clk_hw *clk_hw; - unsigned int idx, ret; + unsigned int idx; for (idx = 0; idx < nr_clk; idx++, list++) { clk_hw = clk_hw_register_fixed_rate(ctx->dev, list->name, @@ -151,15 +151,6 @@ void __init samsung_clk_register_fixed_rate(struct samsung_clk_provider *ctx, } samsung_clk_add_lookup(ctx, clk_hw, list->id); - - /* - * Unconditionally add a clock lookup for the fixed rate clocks. - * There are not many of these on any of Samsung platforms. - */ - ret = clk_hw_register_clkdev(clk_hw, list->name, NULL); - if (ret) - pr_err("%s: failed to register clock lookup for %s", - __func__, list->name); } }