diff options
author | Jan Luebbe <jlu@pengutronix.de> | 2016-12-08 18:04:41 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2017-01-10 08:27:23 +0100 |
commit | 782f63f7928e68ade8c1b6d8dd4407688f864841 (patch) | |
tree | 5802ba72175c7fa53745c518218c5114ae23134a /drivers/pwm | |
parent | 34babf2121a3626db21d654d061f62df8d6f35f4 (diff) | |
download | barebox-782f63f7928e68ade8c1b6d8dd4407688f864841.tar.gz barebox-782f63f7928e68ade8c1b6d8dd4407688f864841.tar.xz |
PWM: update enable status when using the internal API
Without these, 'devinfo pwmX' will show enabled=0 even though the PWM
was enabled (for example by a pwm-backlight).
Signed-off-by: Jan Luebbe <jlu@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/pwm')
-rw-r--r-- | drivers/pwm/core.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/pwm/core.c b/drivers/pwm/core.c index 360520195a..ee65619c4e 100644 --- a/drivers/pwm/core.c +++ b/drivers/pwm/core.c @@ -281,6 +281,8 @@ unsigned int pwm_get_duty_cycle(struct pwm_device *pwm) */ int pwm_enable(struct pwm_device *pwm) { + pwm->p_enable = 1; + if (!test_and_set_bit(FLAG_ENABLED, &pwm->flags)) return pwm->chip->ops->enable(pwm->chip); @@ -293,6 +295,8 @@ EXPORT_SYMBOL_GPL(pwm_enable); */ void pwm_disable(struct pwm_device *pwm) { + pwm->p_enable = 0; + if (test_and_clear_bit(FLAG_ENABLED, &pwm->flags)) pwm->chip->ops->disable(pwm->chip); } |