[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Yl3rNeaYTz0CPjmL@google.com>
Date: Mon, 18 Apr 2022 15:50:29 -0700
From: Matthias Kaehlcke <mka@...omium.org>
To: Brian Norris <briannorris@...omium.org>
Cc: Liam Girdwood <lgirdwood@...il.com>,
Mark Brown <broonie@...nel.org>, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/2] regulator: core: Sleep (not delay) in set_voltage()
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@...omium.org>
Reviewed-by: Matthias Kaehlcke <mka@...omium.org>
Powered by blists - more mailing lists