| From 5030473714ee5ce2dcaa16f690fc5352754b9b9d Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 17 Jun 2021 11:51:41 +0200 |
| Subject: pwm: tegra: 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 86f7fa71cd830d18d7ebcaf719dffd5ddfe1acdd ] |
| |
| 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. |
| |
| So drop the hardware modification from the .remove() callback. |
| |
| 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-tegra.c | 13 ------------- |
| 1 file changed, 13 deletions(-) |
| |
| diff --git a/drivers/pwm/pwm-tegra.c b/drivers/pwm/pwm-tegra.c |
| index 55bc63d5a0ae..6d8e324864fa 100644 |
| --- a/drivers/pwm/pwm-tegra.c |
| +++ b/drivers/pwm/pwm-tegra.c |
| @@ -301,7 +301,6 @@ static int tegra_pwm_probe(struct platform_device *pdev) |
| static int tegra_pwm_remove(struct platform_device *pdev) |
| { |
| struct tegra_pwm_chip *pc = platform_get_drvdata(pdev); |
| - unsigned int i; |
| int err; |
| |
| if (WARN_ON(!pc)) |
| @@ -311,18 +310,6 @@ static int tegra_pwm_remove(struct platform_device *pdev) |
| if (err < 0) |
| return err; |
| |
| - for (i = 0; i < pc->chip.npwm; i++) { |
| - struct pwm_device *pwm = &pc->chip.pwms[i]; |
| - |
| - if (!pwm_is_enabled(pwm)) |
| - if (clk_prepare_enable(pc->clk) < 0) |
| - continue; |
| - |
| - pwm_writel(pc, i, 0); |
| - |
| - clk_disable_unprepare(pc->clk); |
| - } |
| - |
| reset_control_assert(pc->rst); |
| clk_disable_unprepare(pc->clk); |
| |
| -- |
| 2.30.2 |
| |