Re: [PATCH 1/2] regulator: core: Sleep (not delay) in set_voltage()

From: Matthias Kaehlcke
Date: Mon Apr 18 2022 - 18:50:35 EST


On Mon, Apr 18, 2022 at 02:12:39PM -0700, Brian Norris wrote:
> These delays can be relatively large (e.g., hundreds of microseconds on
> RK3399 Gru systems). Per Documentation/timers/timers-howto.rst, that
> should usually use a sleeping delay. Let's use fsleep() to handle both
> large and small delays appropriately. This avoids burning a bunch of CPU
> time and hurting scheduling latencies when hitting regulators a lot
> (e.g., during cpufreq).
>
> The sleep vs. delay issue choice has been made differently over time --
> early versions of RK3399 Gru PWM-regulator support used usleep_range()
> in pwm-regulator.c. More of this got moved into the regulator core,
> in commits like:
>
> 73e705bf81ce regulator: core: Add set_voltage_time op
>
> At the same time, the sleep turned into a delay.
>
> It's OK to sleep here, as we aren't in an atomic contexts. (All our
> callers grab various mutexes already.)
>
> Signed-off-by: Brian Norris <briannorris@xxxxxxxxxxxx>

Reviewed-by: Matthias Kaehlcke <mka@xxxxxxxxxxxx>