[v1] pwm: pca9685: Fix regression for GPIO use
diff mbox series

Message ID 20190830182641.81502-1-andriy.shevchenko@linux.intel.com
State New
Headers show
Series
  • [v1] pwm: pca9685: Fix regression for GPIO use
Related show

Commit Message

Andy Shevchenko Aug. 30, 2019, 6:26 p.m. UTC
The commit e926b12c611c ("pwm: Clear chip_data in pwm_put()") breaks GPIO usage
by actually removing a crucial call to pwm_set_chip_data(), which is being used
as a flag to understand the mode (GPIO vs. PWM) in which pin is currently
working. Now, if once I requested GPIO, I may not be able to free and request
it again.

Fixes: e926b12c611c ("pwm: Clear chip_data in pwm_put()") breaks GPIO usage
Cc: Mika Westerberg <mika.westerberg@linux.intel.com>
Cc: Uwe Kleine-K├Ânig <u.kleine-koenig@pengutronix.de>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/pwm/pwm-pca9685.c | 1 +
 1 file changed, 1 insertion(+)

Patch
diff mbox series

diff --git a/drivers/pwm/pwm-pca9685.c b/drivers/pwm/pwm-pca9685.c
index 168684b02ebc..7cdec56ab3ec 100644
--- a/drivers/pwm/pwm-pca9685.c
+++ b/drivers/pwm/pwm-pca9685.c
@@ -165,6 +165,7 @@  static void pca9685_pwm_gpio_free(struct gpio_chip *gpio, unsigned int offset)
 	pm_runtime_put(pca->chip.dev);
 	mutex_lock(&pca->lock);
 	pwm = &pca->chip.pwms[offset];
+	pwm_set_chip_data(pwm, NULL);
 	mutex_unlock(&pca->lock);
 }