summaryrefslogtreecommitdiffstats
path: root/drivers/pwm
diff options
context:
space:
mode:
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>2020-02-09 22:31:06 +0100
committerThierry Reding <thierry.reding@gmail.com>2020-03-30 16:55:25 +0200
commit15d4dbd601591858611184f9ddeb5bf21569159c (patch)
treef90ec7570c283eb4f19aa5e94541c237876dd38a /drivers/pwm
parentpwm: bcm2835: Dynamically allocate base (diff)
downloadlinux-15d4dbd601591858611184f9ddeb5bf21569159c.tar.xz
linux-15d4dbd601591858611184f9ddeb5bf21569159c.zip
pwm: imx27: Fix clock handling in pwm_imx27_apply()
pwm_imx27_apply() enables the clocks if the previous PWM state was disabled. Given that the clocks are supposed to be left on iff the PWM is running, the decision to disable the clocks at the end of the function must not depend on the previous state. Without this fix the enable count of the two affected clocks increases by one whenever ->apply() changes from one disabled state to another. Fixes: bd88d319abe9 ("pwm: imx27: Unconditionally write state to hardware") 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')
-rw-r--r--drivers/pwm/pwm-imx27.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/pwm/pwm-imx27.c b/drivers/pwm/pwm-imx27.c
index 35a7ac42269c..7e5ed0152977 100644
--- a/drivers/pwm/pwm-imx27.c
+++ b/drivers/pwm/pwm-imx27.c
@@ -289,7 +289,7 @@ static int pwm_imx27_apply(struct pwm_chip *chip, struct pwm_device *pwm,
writel(cr, imx->mmio_base + MX3_PWMCR);
- if (!state->enabled && cstate.enabled)
+ if (!state->enabled)
pwm_imx27_clk_disable_unprepare(chip);
return 0;