pwm: atmel: Free resources only after pwmchip_remove()
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Wed, 24 Mar 2021 19:56:35 +0000 (20:56 +0100)
committerThierry Reding <thierry.reding@gmail.com>
Fri, 9 Apr 2021 12:31:08 +0000 (14:31 +0200)
Before pwmchip_remove() returns the PWM is expected to be functional. So
remove the pwmchip before disabling the clock.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Claudiu Beznea <claudiu.beznea@microchip.com>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
drivers/pwm/pwm-atmel.c

index a4d0be6..d49da70 100644 (file)
@@ -450,10 +450,12 @@ static int atmel_pwm_remove(struct platform_device *pdev)
 {
        struct atmel_pwm_chip *atmel_pwm = platform_get_drvdata(pdev);
 
+       pwmchip_remove(&atmel_pwm->chip);
+
        clk_unprepare(atmel_pwm->clk);
        mutex_destroy(&atmel_pwm->isr_lock);
 
-       return pwmchip_remove(&atmel_pwm->chip);
+       return 0;
 }
 
 static struct platform_driver atmel_pwm_driver = {