aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pwm/core.c
diff options
context:
space:
mode:
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>2019-03-25 05:49:33 -0400
committerThierry Reding <thierry.reding@gmail.com>2019-05-09 11:09:54 -0400
commite926b12c611c2095c7976e2ed31753ad6eb5ff1a (patch)
treec0c74a6953c3949d1d5007cb4e2eb3c6dca287dd /drivers/pwm/core.c
parent738a1cfec2edb4a6c53ac34fcb29447227dd135e (diff)
pwm: Clear chip_data in pwm_put()
After a PWM is disposed by its user the per chip data becomes invalid. Clear the data in common code instead of the device drivers to get consistent behaviour. Before this patch only three of nine drivers cleaned up here. 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/core.c')
-rw-r--r--drivers/pwm/core.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/pwm/core.c b/drivers/pwm/core.c
index 8c9200a0df5e..3998ebd51db4 100644
--- a/drivers/pwm/core.c
+++ b/drivers/pwm/core.c
@@ -877,6 +877,7 @@ void pwm_put(struct pwm_device *pwm)
877 if (pwm->chip->ops->free) 877 if (pwm->chip->ops->free)
878 pwm->chip->ops->free(pwm->chip, pwm); 878 pwm->chip->ops->free(pwm->chip, pwm);
879 879
880 pwm_set_chip_data(pwm, NULL);
880 pwm->label = NULL; 881 pwm->label = NULL;
881 882
882 module_put(pwm->chip->ops->owner); 883 module_put(pwm->chip->ops->owner);