Re: [PATCH v8 00/16] clk: provide new devm helpers for prepared and enabled clocks

Andy Shevchenko
2022-03-15T18:05:03Z

On Mon, Mar 14, 2022 at 5:14 PM Uwe Kleine-König
<u.kleine-koenig@pengutronix.de> wrote:
>
> Hello,
>
> this is another try to convince the relevant people that
> devm_clk_get_enabled() is a nice idea. Compared to v7 (back in May 2021) this
> series is rebased to v5.17-rc8 and converts quite some drivers that open code
> devm_clk_get_enabled() up to now (patches #3 - #11).
>
> A concern about devm_clk_get_enabled() in v7 was that it helps people to be
> lazy and I agree that in some situations when devm_clk_get_enabled() is used it
> would be more efficient and sensible to care to only enable the clk when really
> needed.
>
> On the other hand, the function is right for some users, e.g. the watchdog
> drivers. For the others it's not so simple to judge. Given that there are a
> lot of drivers that are lazy even if doing so is some effort (i.e. calling
> clk_prepare_enable() and devm_add_action()) convinces me, that introducing the
> function family is sensible. (And if you want to work on these drivers,
> grepping for devm_clk_get_enabled gives you a few candidates once the
> series is in :-)

FWIW,
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
for drivers/iio

Thanks for doing this!

> Otherwise looking at the diffstat of this series:
>
> 48 files changed, 257 insertions(+), 851 deletions(-)
>
> is quite convincing. Just the first two patches (which introduce the new
> functions) account for
>
> 2 files changed, 169 insertions(+), 17 deletions(-)
>
> . A rough third of the added lines is documentation. The rest is driver
> updates which then has:
>
> 46 files changed, 88 insertions(+), 834 deletions(-)
>
> which makes a really nice cleanup.
>
> The series is build-tested on arm64, m68k, powerpc, riscv, s390, sparc64
> and x86_64 using an allmodconfig.
>
> Best regards
> Uwe
>
> Uwe Kleine-König (16):
> clk: generalize devm_clk_get() a bit
> clk: Provide new devm_clk helpers for prepared and enabled clocks
> hwmon: Make use of devm_clk_get_enabled()
> iio: Make use of devm_clk_get_enabled()
> hwrng: meson - Don't open-code devm_clk_get_optional_enabled()
> bus: bt1: Don't open code devm_clk_get_enabled()
> gpio: vf610: Simplify error handling in probe
> drm/meson: dw-hdmi: Don't open code devm_clk_get_enabled()
> rtc: ingenic: Simplify using devm_clk_get_enabled()
> clk: meson: axg-audio: Don't duplicate devm_clk_get_enabled()
> watchdog: Make use of devm_clk_get_enabled()
> pwm: atmel: Simplify using devm_clk_get_prepared()
> rtc: at91sam9: Simplify using devm_clk_get_enabled()
> i2c: imx: Simplify using devm_clk_get_enabled()
> spi: davinci: Simplify using devm_clk_get_enabled()
> dmaengine: lgm: Fix error handling
>
> drivers/bus/bt1-apb.c | 23 +------
> drivers/bus/bt1-axi.c | 23 +------
> drivers/char/hw_random/meson-rng.c | 20 +-----
> drivers/clk/clk-devres.c | 96 ++++++++++++++++++++++-----
> drivers/clk/meson/axg-audio.c | 36 ++--------
> drivers/dma/lgm/lgm-dma.c | 8 +--
> drivers/gpio/gpio-vf610.c | 45 +++----------
> drivers/gpu/drm/meson/meson_dw_hdmi.c | 48 +++++---------
> drivers/hwmon/axi-fan-control.c | 15 +----
> drivers/hwmon/ltc2947-core.c | 17 +----
> drivers/hwmon/mr75203.c | 26 +-------
> drivers/hwmon/sparx5-temp.c | 19 +-----
> drivers/i2c/busses/i2c-imx.c | 12 +---
> drivers/iio/adc/ad7124.c | 15 +----
> drivers/iio/adc/ad7768-1.c | 17 +----
> drivers/iio/adc/ad9467.c | 17 +----
> drivers/iio/adc/ingenic-adc.c | 15 +----
> drivers/iio/adc/lpc18xx_adc.c | 18 +----
> drivers/iio/adc/rockchip_saradc.c | 44 +-----------
> drivers/iio/adc/ti-ads131e08.c | 19 +-----
> drivers/iio/adc/xilinx-ams.c | 15 +----
> drivers/iio/adc/xilinx-xadc-core.c | 18 +----
> drivers/iio/frequency/adf4371.c | 17 +----
> drivers/iio/frequency/admv1013.c | 15 +----
> drivers/iio/frequency/adrf6780.c | 16 +----
> drivers/iio/imu/adis16475.c | 15 +----
> drivers/pwm/pwm-atmel.c | 16 +----
> drivers/rtc/rtc-at91sam9.c | 22 ++----
> drivers/rtc/rtc-jz4740.c | 21 +-----
> drivers/spi/spi-davinci.c | 11 +--
> drivers/watchdog/cadence_wdt.c | 17 +----
> drivers/watchdog/davinci_wdt.c | 18 +----
> drivers/watchdog/imgpdc_wdt.c | 31 +--------
> drivers/watchdog/imx2_wdt.c | 15 +----
> drivers/watchdog/imx7ulp_wdt.c | 15 +----
> drivers/watchdog/loongson1_wdt.c | 17 +----
> drivers/watchdog/lpc18xx_wdt.c | 30 +--------
> drivers/watchdog/meson_gxbb_wdt.c | 16 +----
> drivers/watchdog/of_xilinx_wdt.c | 16 +----
> drivers/watchdog/pic32-dmt.c | 15 +----
> drivers/watchdog/pic32-wdt.c | 17 +----
> drivers/watchdog/pnx4008_wdt.c | 15 +----
> drivers/watchdog/qcom-wdt.c | 16 +----
> drivers/watchdog/rtd119x_wdt.c | 16 +----
> drivers/watchdog/st_lpc_wdt.c | 16 +----
> drivers/watchdog/stm32_iwdg.c | 31 +--------
> drivers/watchdog/visconti_wdt.c | 18 +----
> include/linux/clk.h | 90 ++++++++++++++++++++++++-
> 48 files changed, 257 insertions(+), 851 deletions(-)
>
>
> base-commit: 09688c0166e76ce2fb85e86b9d99be8b0084cdf9
> --
> 2.35.1
>

--
With Best Regards,
Andy Shevchenko