]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
clk: spacemit: k3: mark top_dclk as CLK_IS_CRITICAL
authorTroy Mitchell <troy.mitchell@linux.spacemit.com>
Fri, 24 Apr 2026 08:20:32 +0000 (16:20 +0800)
committerStephen Boyd <sboyd@kernel.org>
Wed, 29 Apr 2026 02:03:08 +0000 (19:03 -0700)
top_dclk is the DDR bus clock. If it is gated by clk_disable_unused,
all memory-mapped bus transactions cease to function, causing DMA
engines to hang and general system instability.

Mark it CLK_IS_CRITICAL so the CCF never gates it during the
unused clock sweep.

Fixes: e371a77255b8 ("clk: spacemit: k3: add the clock tree")
Reviewed-by: Brian Masney <bmasney@redhat.com>
Signed-off-by: Troy Mitchell <troy.mitchell@linux.spacemit.com>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/spacemit/ccu-k3.c

index e98afd59f05c64adda4b7f751cc39ede7bc9ac5a..bb8b75bdbdb30d20485ad754ee921bdc99e2242e 100644 (file)
@@ -846,7 +846,7 @@ static const struct clk_parent_data top_parents[] = {
        CCU_PARENT_HW(pll6_d3),
 };
 CCU_MUX_DIV_GATE_FC_DEFINE(top_dclk, top_parents, APMU_TOP_DCLK_CTRL, 5, 3,
-                          BIT(8), 2, 3, BIT(1), 0);
+                          BIT(8), 2, 3, BIT(1), CLK_IS_CRITICAL);
 
 static const struct clk_parent_data ucie_parents[] = {
        CCU_PARENT_HW(pll1_d8_307p2),