aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/pwm/core.c1
-rw-r--r--drivers/pwm/pwm-berlin.c1
-rw-r--r--drivers/pwm/pwm-pca9685.c1
-rw-r--r--drivers/pwm/pwm-samsung.c1
4 files changed, 1 insertions, 3 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);
diff --git a/drivers/pwm/pwm-berlin.c b/drivers/pwm/pwm-berlin.c
index 7c8d6a168ceb..b91c477cc84b 100644
--- a/drivers/pwm/pwm-berlin.c
+++ b/drivers/pwm/pwm-berlin.c
@@ -84,7 +84,6 @@ static void berlin_pwm_free(struct pwm_chip *chip, struct pwm_device *pwm)
84{ 84{
85 struct berlin_pwm_channel *channel = pwm_get_chip_data(pwm); 85 struct berlin_pwm_channel *channel = pwm_get_chip_data(pwm);
86 86
87 pwm_set_chip_data(pwm, NULL);
88 kfree(channel); 87 kfree(channel);
89} 88}
90 89
diff --git a/drivers/pwm/pwm-pca9685.c b/drivers/pwm/pwm-pca9685.c
index a7eaf962a95b..567f5e2771c4 100644
--- a/drivers/pwm/pwm-pca9685.c
+++ b/drivers/pwm/pwm-pca9685.c
@@ -176,7 +176,6 @@ static void pca9685_pwm_gpio_free(struct gpio_chip *gpio, unsigned int offset)
176 pm_runtime_put(pca->chip.dev); 176 pm_runtime_put(pca->chip.dev);
177 mutex_lock(&pca->lock); 177 mutex_lock(&pca->lock);
178 pwm = &pca->chip.pwms[offset]; 178 pwm = &pca->chip.pwms[offset];
179 pwm_set_chip_data(pwm, NULL);
180 mutex_unlock(&pca->lock); 179 mutex_unlock(&pca->lock);
181} 180}
182 181
diff --git a/drivers/pwm/pwm-samsung.c b/drivers/pwm/pwm-samsung.c
index 062f2cfc45ec..3762432dd6a7 100644
--- a/drivers/pwm/pwm-samsung.c
+++ b/drivers/pwm/pwm-samsung.c
@@ -238,7 +238,6 @@ static int pwm_samsung_request(struct pwm_chip *chip, struct pwm_device *pwm)
238static void pwm_samsung_free(struct pwm_chip *chip, struct pwm_device *pwm) 238static void pwm_samsung_free(struct pwm_chip *chip, struct pwm_device *pwm)
239{ 239{
240 devm_kfree(chip->dev, pwm_get_chip_data(pwm)); 240 devm_kfree(chip->dev, pwm_get_chip_data(pwm));
241 pwm_set_chip_data(pwm, NULL);
242} 241}
243 242
244static int pwm_samsung_enable(struct pwm_chip *chip, struct pwm_device *pwm) 243static int pwm_samsung_enable(struct pwm_chip *chip, struct pwm_device *pwm)