| From 5f89342df6231fd77d6b55dba0e13fda5f6fae3f Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Fri, 12 Oct 2018 12:12:28 +0200 |
| Subject: pwm: lpss: Release runtime-pm reference from the driver's remove |
| callback |
| |
| From: Hans de Goede <hdegoede@redhat.com> |
| |
| [ Upstream commit 42885551cedb45961879d2fc3dc3c4dc545cc23e ] |
| |
| For each pwm output which gets enabled through pwm_lpss_apply(), we do a |
| pm_runtime_get_sync(). |
| |
| This commit adds pm_runtime_put() calls to pwm_lpss_remove() to balance |
| these when the driver gets removed with some of the outputs still enabled. |
| |
| Fixes: f080be27d7d9 ("pwm: lpss: Add support for runtime PM") |
| Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> |
| Signed-off-by: Hans de Goede <hdegoede@redhat.com> |
| Signed-off-by: Thierry Reding <thierry.reding@gmail.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/pwm/pwm-lpss.c | 6 ++++++ |
| 1 file changed, 6 insertions(+) |
| |
| diff --git a/drivers/pwm/pwm-lpss.c b/drivers/pwm/pwm-lpss.c |
| index 5208b3f80ad85..239003807c085 100644 |
| --- a/drivers/pwm/pwm-lpss.c |
| +++ b/drivers/pwm/pwm-lpss.c |
| @@ -205,6 +205,12 @@ EXPORT_SYMBOL_GPL(pwm_lpss_probe); |
| |
| int pwm_lpss_remove(struct pwm_lpss_chip *lpwm) |
| { |
| + int i; |
| + |
| + for (i = 0; i < lpwm->info->npwm; i++) { |
| + if (pwm_is_enabled(&lpwm->chip.pwms[i])) |
| + pm_runtime_put(lpwm->chip.dev); |
| + } |
| return pwmchip_remove(&lpwm->chip); |
| } |
| EXPORT_SYMBOL_GPL(pwm_lpss_remove); |
| -- |
| 2.20.1 |
| |