drivers/clocksource/timer-ti-dm: Don't call clk_get_rate() in stop function
authorIvaylo Dimitrov <ivo.g.dimitrov.75@gmail.com>
Tue, 3 Oct 2023 05:50:20 +0000 (08:50 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 20 Nov 2023 10:58:53 +0000 (11:58 +0100)
commit567d915092e3cbe25b78925d905cf4db1f5d3efb
tree7f754b92061949b5484ddccc1b0dda27b4d8147a
parent516315314ffa917bfc7e0d734bae56ff244e739c
drivers/clocksource/timer-ti-dm: Don't call clk_get_rate() in stop function

[ Upstream commit 12590d4d0e331d3cb9e6b3494515cd61c8a6624e ]

clk_get_rate() might sleep, and that prevents dm-timer based PWM from being
used from atomic context.

Fix that by getting fclk rate in probe() and using a notifier in case rate
changes.

Fixes: af04aa856e93 ("ARM: OMAP: Move dmtimer driver out of plat-omap to drivers under clocksource")
Signed-off-by: Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com>
Reviewed-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Link: https://lore.kernel.org/r/1696312220-11550-1-git-send-email-ivo.g.dimitrov.75@gmail.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/clocksource/timer-ti-dm.c