Hi, Sam, Thanks for reviewing the series! On 1/16/24 17:42, Sam Protsenko wrote: cut >> Few clocks are marked as critical because when either of them is >> disabled, the system hangs even if their clock parents are enabled. >> >> Reviewed-by: Peter Griffin <peter.griffin@xxxxxxxxxx> >> Signed-off-by: Tudor Ambarus <tudor.ambarus@xxxxxxxxxx> >> --- cut >> >> diff --git a/drivers/clk/samsung/clk-gs101.c b/drivers/clk/samsung/clk-gs101.c >> index 782993951fff..f3f0f5feb28d 100644 >> --- a/drivers/clk/samsung/clk-gs101.c >> +++ b/drivers/clk/samsung/clk-gs101.c cut >> +static const struct samsung_gate_clock peric0_gate_clks[] __initconst = { >> + /* Disabling this clock makes the system hang. Mark the clock as critical. */ >> + GATE(CLK_GOUT_PERIC0_PERIC0_CMU_PERIC0_PCLK, >> + "gout_peric0_peric0_cmu_peric0_pclk", "mout_peric0_bus_user", >> + CLK_CON_GAT_CLK_BLK_PERIC0_UID_PERIC0_CMU_PERIC0_IPCLKPORT_PCLK, >> + 21, CLK_IS_CRITICAL, 0), > Why not just CLK_IGNORE_UNUSED? As I understand this gate clock can be When either of the clocks that I marked as critical is disabled, the system hangs, even if their clock parent is enabled. I tested this by enabling the clock debugfs with write permissions. I prepared-enabled the parent clock to increase their user count so that when the child gets disabled to not disable the parent as well. When disabling the child the system hung, even if its parent was enabled. Thus I considered that the child is critical. I mentioned this in the commit message as well. Please tell if get this wrong. > used to disable PCLK (bus clock) provided to the whole CMU_PERIC0. > Aren't there any valid cases for disabling this clock, like during > some PM transitions? For Exynos850 clock driver I marked all clocks of They aren't, because if one switches off any of these clocks that are marked as critical, the system hangs and it will not be able to resume. > this kind as CLK_IGNORE_UNUSED and it works fine. In other words: I'd > say CLK_IS_CRITICAL flag is more "strong" than CLK_IGNORE_UNUSED, and > requires better and more specific explanation, to make sure we are not > abusing it. And I'm not sure this is the case. Is the explanation from the commit message enough? > > The same goes for the rest of clocks marked as CLK_IS_CRITICAL in this > patch. Please check if maybe using CLK_IGNORE_UNUSED makes sense for > any of those as well. I've already checked and all behave as described above. Thanks, ta