[PATCH 4/4] clk: Drop obsolete devm_clk_bulk_get_all_enable() helper

AngeloGioacchino Del Regno angelogioacchino.delregno at collabora.com
Mon Sep 16 05:08:24 PDT 2024


Il 14/09/24 20:04, Cristian Ciocaltea ha scritto:
> Commit 265b07df758a ("clk: Provide managed helper to get and enable bulk
> clocks") added devm_clk_bulk_get_all_enable() function, but missed to
> return the number of clocks stored in the clk_bulk_data table referenced
> by the clks argument.  Without knowing the number, it's not possible to
> iterate these clocks when needed, hence the argument is useless and
> could have been simply removed.
> 
> A new helper devm_clk_bulk_get_all_enabled() has been introduced, which
> is consistent with devm_clk_bulk_get_all() in terms of the returned
> value.
> 
> Drop the obsolete function since all users switched to the new helper.
> 
> Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea at collabora.com>

This should probably be done in two (three?) cycles if we want to avoid
immutable branches... but anyway, for the commit itself:

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno at collabora.com>

> ---
>   drivers/clk/clk-devres.c | 32 --------------------------------
>   include/linux/clk.h      | 22 ----------------------
>   2 files changed, 54 deletions(-)
> 
> diff --git a/drivers/clk/clk-devres.c b/drivers/clk/clk-devres.c
> index 4203aaaa7544..14a657f336fe 100644
> --- a/drivers/clk/clk-devres.c
> +++ b/drivers/clk/clk-devres.c
> @@ -218,38 +218,6 @@ static void devm_clk_bulk_release_all_enable(struct device *dev, void *res)
>   	clk_bulk_put_all(devres->num_clks, devres->clks);
>   }
>   
> -int __must_check devm_clk_bulk_get_all_enable(struct device *dev,
> -					      struct clk_bulk_data **clks)
> -{
> -	struct clk_bulk_devres *devres;
> -	int ret;
> -
> -	devres = devres_alloc(devm_clk_bulk_release_all_enable,
> -			      sizeof(*devres), GFP_KERNEL);
> -	if (!devres)
> -		return -ENOMEM;
> -
> -	ret = clk_bulk_get_all(dev, &devres->clks);
> -	if (ret > 0) {
> -		*clks = devres->clks;
> -		devres->num_clks = ret;
> -	} else {
> -		devres_free(devres);
> -		return ret;
> -	}
> -
> -	ret = clk_bulk_prepare_enable(devres->num_clks, *clks);
> -	if (!ret) {
> -		devres_add(dev, devres);
> -	} else {
> -		clk_bulk_put_all(devres->num_clks, devres->clks);
> -		devres_free(devres);
> -	}
> -
> -	return ret;
> -}
> -EXPORT_SYMBOL_GPL(devm_clk_bulk_get_all_enable);
> -
>   int __must_check devm_clk_bulk_get_all_enabled(struct device *dev,
>   					       struct clk_bulk_data **clks)
>   {
> diff --git a/include/linux/clk.h b/include/linux/clk.h
> index 158c5072852e..b607482ca77e 100644
> --- a/include/linux/clk.h
> +++ b/include/linux/clk.h
> @@ -495,22 +495,6 @@ int __must_check devm_clk_bulk_get_optional(struct device *dev, int num_clks,
>   int __must_check devm_clk_bulk_get_all(struct device *dev,
>   				       struct clk_bulk_data **clks);
>   
> -/**
> - * devm_clk_bulk_get_all_enable - Get and enable all clocks of the consumer (managed)
> - * @dev: device for clock "consumer"
> - * @clks: pointer to the clk_bulk_data table of consumer
> - *
> - * Returns success (0) or negative errno.
> - *
> - * This helper function allows drivers to get all clocks of the
> - * consumer and enables them in one operation with management.
> - * The clks will automatically be disabled and freed when the device
> - * is unbound.
> - */
> -
> -int __must_check devm_clk_bulk_get_all_enable(struct device *dev,
> -					      struct clk_bulk_data **clks);
> -
>   /**
>    * devm_clk_bulk_get_all_enabled - Get and enable all clocks of the consumer (managed)
>    * @dev: device for clock "consumer"
> @@ -1052,12 +1036,6 @@ static inline int __must_check devm_clk_bulk_get_all(struct device *dev,
>   	return 0;
>   }
>   
> -static inline int __must_check devm_clk_bulk_get_all_enable(struct device *dev,
> -						struct clk_bulk_data **clks)
> -{
> -	return 0;
> -}
> -
>   static inline int __must_check devm_clk_bulk_get_all_enabled(struct device *dev,
>   						struct clk_bulk_data **clks)
>   {



More information about the Linux-mediatek mailing list