[PATCH v2 0/4] Provide devm_clk_bulk_get_all_enabled() helper

Cristian Ciocaltea posted 4 patches 2 months ago
There is a newer version of this series
drivers/clk/clk-devres.c                | 30 ++++++++++++++++--------------
drivers/pci/controller/dwc/pci-exynos.c |  2 +-
drivers/soc/mediatek/mtk-pmic-wrap.c    |  4 ++--
include/linux/clk.h                     | 12 +++++++-----
4 files changed, 26 insertions(+), 22 deletions(-)
[PATCH v2 0/4] Provide devm_clk_bulk_get_all_enabled() helper
Posted by Cristian Ciocaltea 2 months ago
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.

That is required in case there is a need to iterate these clocks later,
therefore I couldn't see any use case of this parameter and should have
been simply removed from the function declaration.

The first patch in the series provides devm_clk_bulk_get_all_enabled()
variant, which is consistent with devm_clk_bulk_get_all() in terms of
the returned value:

 > 0 if one or more clocks have been stored
 = 0 if there are no clocks
 < 0 if an error occurred

Moreover, the naming is consistent with devm_clk_get_enabled(), i.e. use
the past form of 'enable'.

The next two patches switch existing users of devm_clk_get_enable() to
the new helper - there were only two, as of next-20240913.

The last patch drops the now obsolete devm_clk_bulk_get_all_enable()
helper.

Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
---
Changes in v2:
- Dropped references to 'broken' API in commit descriptions, per Mani's
  suggestion
- Added R-b tags from Angelo and Mani
- Link to v1:
  https://lore.kernel.org/r/20240914-clk_bulk_ena_fix-v1-0-ce3537585c06@collabora.com

---
Cristian Ciocaltea (4):
      clk: Provide devm_clk_bulk_get_all_enabled() helper
      soc: mediatek: pwrap: Switch to devm_clk_bulk_get_all_enabled()
      PCI: exynos: Switch to devm_clk_bulk_get_all_enabled()
      clk: Drop obsolete devm_clk_bulk_get_all_enable() helper

 drivers/clk/clk-devres.c                | 30 ++++++++++++++++--------------
 drivers/pci/controller/dwc/pci-exynos.c |  2 +-
 drivers/soc/mediatek/mtk-pmic-wrap.c    |  4 ++--
 include/linux/clk.h                     | 12 +++++++-----
 4 files changed, 26 insertions(+), 22 deletions(-)
---
base-commit: 5acd9952f95fb4b7da6d09a3be39195a80845eb6
change-id: 20240912-clk_bulk_ena_fix-16ba77358ddf
Re: [PATCH v2 0/4] Provide devm_clk_bulk_get_all_enabled() helper
Posted by Cristian Ciocaltea 1 month, 1 week ago
On 9/26/24 1:43 PM, Cristian Ciocaltea wrote:
> 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.
> 
> That is required in case there is a need to iterate these clocks later,
> therefore I couldn't see any use case of this parameter and should have
> been simply removed from the function declaration.
> 
> The first patch in the series provides devm_clk_bulk_get_all_enabled()
> variant, which is consistent with devm_clk_bulk_get_all() in terms of
> the returned value:
> 
>  > 0 if one or more clocks have been stored
>  = 0 if there are no clocks
>  < 0 if an error occurred
> 
> Moreover, the naming is consistent with devm_clk_get_enabled(), i.e. use
> the past form of 'enable'.
> 
> The next two patches switch existing users of devm_clk_get_enable() to
> the new helper - there were only two, as of next-20240913.
> 
> The last patch drops the now obsolete devm_clk_bulk_get_all_enable()
> helper.
> 
> Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
> ---
> Changes in v2:
> - Dropped references to 'broken' API in commit descriptions, per Mani's
>   suggestion
> - Added R-b tags from Angelo and Mani
> - Link to v1:
>   https://lore.kernel.org/r/20240914-clk_bulk_ena_fix-v1-0-ce3537585c06@collabora.com

[...]

This still applies cleanly on next-20241016 and there are no new users
of devm_clk_bulk_get_all_enable(), hence I wonder if anything else is
missing to get it merged.

Thanks,
Cristian
Re: [PATCH v2 0/4] Provide devm_clk_bulk_get_all_enabled() helper
Posted by Sebastian Reichel 1 month, 1 week ago
Hi,

On Wed, Oct 16, 2024 at 12:28:37PM +0300, Cristian Ciocaltea wrote:
> On 9/26/24 1:43 PM, Cristian Ciocaltea wrote:
> > 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.
> > 
> > That is required in case there is a need to iterate these clocks later,
> > therefore I couldn't see any use case of this parameter and should have
> > been simply removed from the function declaration.
> > 
> > The first patch in the series provides devm_clk_bulk_get_all_enabled()
> > variant, which is consistent with devm_clk_bulk_get_all() in terms of
> > the returned value:
> > 
> >  > 0 if one or more clocks have been stored
> >  = 0 if there are no clocks
> >  < 0 if an error occurred
> > 
> > Moreover, the naming is consistent with devm_clk_get_enabled(), i.e. use
> > the past form of 'enable'.
> > 
> > The next two patches switch existing users of devm_clk_get_enable() to
> > the new helper - there were only two, as of next-20240913.
> > 
> > The last patch drops the now obsolete devm_clk_bulk_get_all_enable()
> > helper.
> > 
> > Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
> > ---
> > Changes in v2:
> > - Dropped references to 'broken' API in commit descriptions, per Mani's
> >   suggestion
> > - Added R-b tags from Angelo and Mani
> > - Link to v1:
> >   https://lore.kernel.org/r/20240914-clk_bulk_ena_fix-v1-0-ce3537585c06@collabora.com
> 
> [...]
> 
> This still applies cleanly on next-20241016 and there are no new users
> of devm_clk_bulk_get_all_enable(), hence I wonder if anything else is
> missing to get it merged.

FWIW another potential user for the new function is just being added
to the kernel:

https://lore.kernel.org/linux-rockchip/20241011065140.19999-1-frawang.cn@gmail.com/

Greetings,

-- Sebastian