Later versions of the datasheet makes it clear D3 do not have any
realtime module stop control registers (RMSTPCRx). Remove the
manipulation of them from the module clock table to match this.

Suggested-by: Marek Vasut <[email protected]>
Signed-off-by: Niklas Söderlund <[email protected]>
---
* Changes since v1
- Add check in renesas_clk_remove() to avoid any RMSTPCR access for D3,
  thanks Marek!
---
 drivers/clk/renesas/r8a77995-cpg-mssr.c | 24 ++++++++++++------------
 drivers/clk/renesas/renesas-cpg-mssr.c  |  3 ++-
 2 files changed, 14 insertions(+), 13 deletions(-)

diff --git a/drivers/clk/renesas/r8a77995-cpg-mssr.c 
b/drivers/clk/renesas/r8a77995-cpg-mssr.c
index 309b0aec8e2a..53b098eae61d 100644
--- a/drivers/clk/renesas/r8a77995-cpg-mssr.c
+++ b/drivers/clk/renesas/r8a77995-cpg-mssr.c
@@ -216,18 +216,18 @@ static const struct rcar_gen3_cpg_pll_config 
cpg_pll_configs[2] __initconst = {
 };
 
 static const struct mstp_stop_table r8a77995_mstp_table[] = {
-       { 0x00210000, 0x0, 0x00210000, 0 },
-       { 0x03e01000, 0x0, 0x03e01000, 0 },
-       { 0x000e2fdc, 0x2000, 0x000e2fd8, 0 },
-       { 0xc00014df, 0x400, 0xc00014df, 0 },
-       { 0x80000004, 0x80, 0x80000004, 0 },
-       { 0x40d20004, 0x0, 0x40d20004, 0 },
-       { 0x08c0008c, 0x0, 0x08c0008c, 0 },
-       { 0x09941c18, 0x0, 0x09941c18, 0 },
-       { 0x00801087, 0x0, 0x00801087, 0 },
-       { 0xf143dfc0, 0x0, 0xf143dfc0, 0 },
-       { 0x063e1820, 0x0, 0x063e1820, 0 },
-       { 0x00000000, 0x0, 0x00000000, 0 },
+       { 0x00210000, 0x0, 0, 0 },
+       { 0x03e01000, 0x0, 0, 0 },
+       { 0x000e2fdc, 0x2000, 0, 0 },
+       { 0xc00014df, 0x400, 0, 0 },
+       { 0x80000004, 0x80, 0, 0 },
+       { 0x40d20004, 0x0, 0, 0 },
+       { 0x08c0008c, 0x0, 0, 0 },
+       { 0x09941c18, 0x0, 0, 0 },
+       { 0x00801087, 0x0, 0, 0 },
+       { 0xf143dfc0, 0x0, 0, 0 },
+       { 0x063e1820, 0x0, 0, 0 },
+       { 0x00000000, 0x0, 0, 0 },
 };
 
 static const void *r8a77995_get_pll_config(const u32 cpg_mode)
diff --git a/drivers/clk/renesas/renesas-cpg-mssr.c 
b/drivers/clk/renesas/renesas-cpg-mssr.c
index 39ff4541c1e4..4b07dbb3277e 100644
--- a/drivers/clk/renesas/renesas-cpg-mssr.c
+++ b/drivers/clk/renesas/renesas-cpg-mssr.c
@@ -127,7 +127,8 @@ int renesas_clk_remove(void __iomem *base, struct 
cpg_mssr_info *info)
                                info->mstp_table[i].sdis,
                                info->mstp_table[i].sen);
 
-               if (info->reg_layout == CLK_REG_LAYOUT_RCAR_GEN4)
+               if (info->reg_layout == CLK_REG_LAYOUT_RCAR_GEN4 ||
+                   renesas_get_cpu_type() == RENESAS_CPU_TYPE_R8A77995)
                        continue;
 
                clrsetbits_le32(base + RMSTPCR(i),
-- 
2.52.0

Reply via email to