diff mbox series

[v2] clk: samsung: Don't register clkdev lookup for the fixed rate clocks

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

Commit Message

Marek Szyprowski May 10, 2024, 6:59 a.m. UTC
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>
---
v2:
- removed unused 'ret' variable
---
 drivers/clk/samsung/clk.c | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

Comments

Stephen Boyd May 14, 2024, 9:12 p.m. UTC | #1
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
Artur Weber July 18, 2024, 12:20 p.m. UTC | #2
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
Krzysztof Kozlowski July 22, 2024, 6:26 a.m. UTC | #3
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
Krzysztof Kozlowski July 22, 2024, 6:34 a.m. UTC | #4
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 mbox series

Patch

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);
 	}
 }