pwm: tegra: Assert reset only after the PWM was unregistered
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Thu, 17 Jun 2021 09:51:43 +0000 (11:51 +0200)
committerThierry Reding <thierry.reding@gmail.com>
Wed, 30 Jun 2021 17:12:20 +0000 (19:12 +0200)
The driver is supposed to stay functional until pwmchip_remove()
returns. So the reset must be asserted only after that.

pwmchip_remove() always returns 0, so the return code can be ignored
which keeps the tegra_pwm_remove() a bit simpler.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
drivers/pwm/pwm-tegra.c

index e865743e59890e28fbaf476c7ff61f60cb143a1b..11a10b575ace9c7fe989bf138fd69c7c9bd5ff09 100644 (file)
@@ -301,9 +301,11 @@ static int tegra_pwm_remove(struct platform_device *pdev)
 {
        struct tegra_pwm_chip *pc = platform_get_drvdata(pdev);
 
+       pwmchip_remove(&pc->chip);
+
        reset_control_assert(pc->rst);
 
-       return pwmchip_remove(&pc->chip);
+       return 0;
 }
 
 #ifdef CONFIG_PM_SLEEP