pwm: rockchip: Enable clock before calling clk_get_rate()
authorSimon South <simon@simonsouth.net>
Tue, 19 Jan 2021 16:12:09 +0000 (11:12 -0500)
committerThierry Reding <thierry.reding@gmail.com>
Wed, 20 Jan 2021 17:13:32 +0000 (18:13 +0100)
commit11be938ae003c1cf157f0e80d5c9ad29a0f4c34c
treee6f28027a57ef125d37ca3658091ebe6eb704d45
parentd21ba5d6217bd5a6a696678385906ed1994b380b
pwm: rockchip: Enable clock before calling clk_get_rate()

The documentation for clk_get_rate() in include/linux/clk.h states the
function's result is valid only for a clock source that has been
enabled. However, the Rockchip PWM driver uses this function in two places
to query the rate of a clock without first ensuring it is enabled.

Fix this by modifying rockchip_pwm_get_state() and rockchip_pwm_apply() so
they enable a device's PWM clock before querying its rate (in the latter
case, the querying is actually done in rockchip_pwm_config()) and disable
the clock again before returning.

Reported-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Simon South <simon@simonsouth.net>
Reviewed-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
drivers/pwm/pwm-rockchip.c