diff --git a/drivers/pwm/core.c b/drivers/pwm/core.c index 3605201..ee65619 100644 --- a/drivers/pwm/core.c +++ b/drivers/pwm/core.c @@ -281,6 +281,8 @@ */ 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 @@ */ 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); }