diff options
author | Uwe Kleine-König <u.kleine-koenig@pengutronix.de> | 2020-02-10 22:22:40 +0100 |
---|---|---|
committer | Thierry Reding <thierry.reding@gmail.com> | 2020-03-30 16:55:26 +0200 |
commit | 2cb5cd90f4cd3f819178bb47f3d1ef86ce612db7 (patch) | |
tree | 5d91a06bb57fa468a0245d1335192921998fa857 /drivers/pwm/Kconfig | |
parent | 4563654fddc05a572f889373ba22abc616b3aa1f (diff) | |
download | linux-2cb5cd90f4cd3f819178bb47f3d1ef86ce612db7.tar.gz linux-2cb5cd90f4cd3f819178bb47f3d1ef86ce612db7.tar.bz2 linux-2cb5cd90f4cd3f819178bb47f3d1ef86ce612db7.zip |
pwm: imx27: Ensure clocks being on iff the PWM is on
Up to now the .probe() function didn't enable clocks and relied on the
core to call the .get_state() callback to have the clock running. The
latter enabled the needed clocks and kept them running if the PWM wass
enabled.
This only works correctly if the .get_state() callback is called exactly
once and this single call happens before unused clocks are disabled by
the clk core.
The former wasn't true for a short period while commit 01ccf903edd6
("pwm: Let pwm_get_state() return the last implemented state") applied
and not reverted yet and might become wrong in the future.
The latter isn't true any more since commit cfc4c189bc70 ("pwm: Read
initial hardware state at request time") which results in a running PWM
being stopped at boot time if for example the consumer lives in a kernel
module that is only loaded after the clk core disabled unused clocks.
So ensure .probe() is left with the clocks on if the PWM is running and
.get_state() disables everything it enabled.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
Diffstat (limited to 'drivers/pwm/Kconfig')
0 files changed, 0 insertions, 0 deletions