2024-01-20 10:07:32

by Cristian Marussi

[permalink] [raw]
Subject: [PATCH] clk: Check ops are available in clk_gate_restore_context

Add a check in clk_gate_restore_context() to assure that the clock enable
and disable ops are available before calling them.

CC: Michael Turquette <[email protected]>
CC: Stephen Boyd <[email protected]>
CC: [email protected]
Fixes: 9be766274db4 ("clk: Clean up suspend/resume coding style")
Signed-off-by: Cristian Marussi <[email protected]>
---
Spotted this by code inspection.
I may be missing something, though, given my limited familiarity with CLK.
---
drivers/clk/clk.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
index f0940af485a5..79b90a8099d7 100644
--- a/drivers/clk/clk.c
+++ b/drivers/clk/clk.c
@@ -1200,9 +1200,11 @@ void clk_gate_restore_context(struct clk_hw *hw)
struct clk_core *core = hw->core;

if (core->enable_count)
- core->ops->enable(hw);
+ if (core->ops->enable)
+ core->ops->enable(hw);
else
- core->ops->disable(hw);
+ if (core->ops->disable)
+ core->ops->disable(hw);
}
EXPORT_SYMBOL_GPL(clk_gate_restore_context);

--
2.43.0



2024-04-09 11:35:12

by Stephen Boyd

[permalink] [raw]
Subject: Re: [PATCH] clk: Check ops are available in clk_gate_restore_context

Quoting Cristian Marussi (2024-01-20 02:07:11)
> Add a check in clk_gate_restore_context() to assure that the clock enable
> and disable ops are available before calling them.
>
> CC: Michael Turquette <[email protected]>
> CC: Stephen Boyd <[email protected]>
> CC: [email protected]
> Fixes: 9be766274db4 ("clk: Clean up suspend/resume coding style")
> Signed-off-by: Cristian Marussi <[email protected]>
> ---
> Spotted this by code inspection.
> I may be missing something, though, given my limited familiarity with CLK.

It assumes this is for a gate clk, which has enable/disable clk ops.
Also, only TI uses this code and I suggest you don't use it.