| From 84ce095c931c7a9c2c17b2dd07fc93dbf7e329fa Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 7 Jul 2021 18:27:51 +0200 |
| Subject: pwm: img: Don't modify HW state in .remove() callback |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| From: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> |
| |
| [ Upstream commit c68eb29c8e9067c08175dd0414f6984f236f719d ] |
| |
| A consumer is expected to disable a PWM before calling pwm_put(). And if |
| they didn't there is hopefully a good reason (or the consumer needs |
| fixing). Also if disabling an enabled PWM was the right thing to do, |
| this should better be done in the framework instead of in each low level |
| driver. |
| |
| Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> |
| Signed-off-by: Thierry Reding <thierry.reding@gmail.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/pwm/pwm-img.c | 16 ---------------- |
| 1 file changed, 16 deletions(-) |
| |
| diff --git a/drivers/pwm/pwm-img.c b/drivers/pwm/pwm-img.c |
| index 11b16ecc4f96..18d8e34d0d08 100644 |
| --- a/drivers/pwm/pwm-img.c |
| +++ b/drivers/pwm/pwm-img.c |
| @@ -326,23 +326,7 @@ err_pm_disable: |
| static int img_pwm_remove(struct platform_device *pdev) |
| { |
| struct img_pwm_chip *pwm_chip = platform_get_drvdata(pdev); |
| - u32 val; |
| - unsigned int i; |
| - int ret; |
| - |
| - ret = pm_runtime_get_sync(&pdev->dev); |
| - if (ret < 0) { |
| - pm_runtime_put(&pdev->dev); |
| - return ret; |
| - } |
| - |
| - for (i = 0; i < pwm_chip->chip.npwm; i++) { |
| - val = img_pwm_readl(pwm_chip, PWM_CTRL_CFG); |
| - val &= ~BIT(i); |
| - img_pwm_writel(pwm_chip, PWM_CTRL_CFG, val); |
| - } |
| |
| - pm_runtime_put(&pdev->dev); |
| pm_runtime_disable(&pdev->dev); |
| if (!pm_runtime_status_suspended(&pdev->dev)) |
| img_pwm_runtime_suspend(&pdev->dev); |
| -- |
| 2.33.0 |
| |