Re: [PATCH] clk: renesas: Fix broken clocks on all Gen2 boards

2024-02-11 Thread Geert Uytterhoeven
Hi Niklas,

Thanks for your patch!

On Fri, Feb 9, 2024 at 10:22 PM Niklas Söderlund
 wrote:
> To prepare support for multiple register layouts pointers to register
> tables where added to struct cpg_mssr_info. These pointers are suppose

supposed

> to be filled in at probe time and no intended change in behavior was
> intended.
>
> However the new pointers where only filled in by some paths of the

were

> driver implemented in clk-rcar-gen3.c. The path implemented in
> clk-rcar-gen2.c was not updated leaving the pointers uninitialized
> leading to a crash when trying to probe the clocks.
>
> Fix this by filling in the pointers in the Gen2 code path with the
> values used before they where moved to struct cpg_mssr_info.

were

> Fixes: d413214fb748 ("clk: renesas: Add register pointers into struct 
> cpg_mssr_info")
> Signed-off-by: Niklas Söderlund 

Reviewed-by: Geert Uytterhoeven 

Gr{oetje,eeting}s,

Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds


Re: [PATCH] clk: renesas: Fix broken clocks on all Gen2 boards

2024-02-10 Thread Marek Vasut

On 2/9/24 22:15, Niklas Söderlund wrote:

To prepare support for multiple register layouts pointers to register
tables where added to struct cpg_mssr_info. These pointers are suppose
to be filled in at probe time and no intended change in behavior was
intended.

However the new pointers where only filled in by some paths of the
driver implemented in clk-rcar-gen3.c. The path implemented in
clk-rcar-gen2.c was not updated leaving the pointers uninitialized
leading to a crash when trying to probe the clocks.

Fix this by filling in the pointers in the Gen2 code path with the
values used before they where moved to struct cpg_mssr_info.

Fixes: d413214fb748 ("clk: renesas: Add register pointers into struct 
cpg_mssr_info")
Signed-off-by: Niklas Söderlund 


Acked-by: Marek Vasut 
Tested-by: Marek Vasut  # R8A7791 Porter


[PATCH] clk: renesas: Fix broken clocks on all Gen2 boards

2024-02-09 Thread Niklas Söderlund
To prepare support for multiple register layouts pointers to register
tables where added to struct cpg_mssr_info. These pointers are suppose
to be filled in at probe time and no intended change in behavior was
intended.

However the new pointers where only filled in by some paths of the
driver implemented in clk-rcar-gen3.c. The path implemented in
clk-rcar-gen2.c was not updated leaving the pointers uninitialized
leading to a crash when trying to probe the clocks.

Fix this by filling in the pointers in the Gen2 code path with the
values used before they where moved to struct cpg_mssr_info.

Fixes: d413214fb748 ("clk: renesas: Add register pointers into struct 
cpg_mssr_info")
Signed-off-by: Niklas Söderlund 
---
 drivers/clk/renesas/clk-rcar-gen2.c | 9 +
 1 file changed, 9 insertions(+)

diff --git a/drivers/clk/renesas/clk-rcar-gen2.c 
b/drivers/clk/renesas/clk-rcar-gen2.c
index 66ffef96b695..89f2d9667469 100644
--- a/drivers/clk/renesas/clk-rcar-gen2.c
+++ b/drivers/clk/renesas/clk-rcar-gen2.c
@@ -298,6 +298,15 @@ int gen2_clk_probe(struct udevice *dev)
if (!priv->cpg_pll_config->extal_div)
return -EINVAL;
 
+   if (info->reg_layout == CLK_REG_LAYOUT_RCAR_GEN2_AND_GEN3) {
+   priv->info->status_regs = mstpsr;
+   priv->info->control_regs = smstpcr;
+   priv->info->reset_regs = srcr;
+   priv->info->reset_clear_regs = srstclr;
+   } else {
+   return -EINVAL;
+   }
+
ret = clk_get_by_name(dev, "extal", >clk_extal);
if (ret < 0)
return ret;
-- 
2.43.0