[PATCH v2 2/4] clk: get correct ops for clk_enable() and clk_disable()

Sean Anderson seanga2 at gmail.com
Fri Dec 15 18:07:21 CET 2023


On 11/18/23 17:10, Yang Xiwen via B4 Relay wrote:
> From: Yang Xiwen <forbidden405 at outlook.com>
> 
> assign clk_dev_ops(clkp->dev) to ops to ensure correct clk operations
> are called on clocks.
> 
> This fixes the incorrect enable_count issue as described in [1].
> 
> [1]: https://lore.kernel.org/all/SEZPR06MB695927A6DEEEF8489A06897396A7A@SEZPR06MB6959.apcprd06.prod.outlook.com/
> 
> Signed-off-by: Yang Xiwen <forbidden405 at outlook.com>
> ---
>   drivers/clk/clk-uclass.c | 2 ++
>   1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c
> index 3b5e3f9c86..3e9d68feb3 100644
> --- a/drivers/clk/clk-uclass.c
> +++ b/drivers/clk/clk-uclass.c
> @@ -640,6 +640,7 @@ int clk_enable(struct clk *clk)
>   	if (CONFIG_IS_ENABLED(CLK_CCF)) {
>   		/* Take id 0 as a non-valid clk, such as dummy */
>   		if (clk->id && !clk_get_by_id(clk->id, &clkp)) {
> +			ops = clk_dev_ops(clkp->dev);
>   			if (clkp->enable_count) {
>   				clkp->enable_count++;
>   				return 0;
> @@ -699,6 +700,7 @@ int clk_disable(struct clk *clk)
>   
>   	if (CONFIG_IS_ENABLED(CLK_CCF)) {
>   		if (clk->id && !clk_get_by_id(clk->id, &clkp)) {
> +			ops = clk_dev_ops(clkp->dev);
>   			if (clkp->flags & CLK_IS_CRITICAL)
>   				return 0;
>   
> 

Reviewed-by: Sean Anderson <seanga2 at gmail.com>


More information about the U-Boot mailing list