aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/drivers/pwm/pwm-sti.c
diff options
context:
space:
mode:
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>2021-03-30 14:37:42 +0200
committerThierry Reding <thierry.reding@gmail.com>2021-04-09 14:46:58 +0200
commit0e719e8ca3946bac0034152309fe7565616bde50 (patch)
tree416da062e6ec3acbacce639c60adcf62f48e3dd6 /drivers/pwm/pwm-sti.c
parentpwm: sti: Don't modify HW state in .remove callback (diff)
downloadwireguard-linux-0e719e8ca3946bac0034152309fe7565616bde50.tar.xz
wireguard-linux-0e719e8ca3946bac0034152309fe7565616bde50.zip
pwm: sti: Free resources only after pwmchip_remove()
Before pwmchip_remove() returns the PWM is expected to be functional. So remove the pwmchip before disabling the clocks. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
Diffstat (limited to 'drivers/pwm/pwm-sti.c')
-rw-r--r--drivers/pwm/pwm-sti.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/pwm/pwm-sti.c b/drivers/pwm/pwm-sti.c
index 3064b320df93..f491d56254d7 100644
--- a/drivers/pwm/pwm-sti.c
+++ b/drivers/pwm/pwm-sti.c
@@ -650,11 +650,12 @@ static int sti_pwm_remove(struct platform_device *pdev)
{
struct sti_pwm_chip *pc = platform_get_drvdata(pdev);
+ pwmchip_remove(&pc->chip);
clk_unprepare(pc->pwm_clk);
clk_unprepare(pc->cpt_clk);
- return pwmchip_remove(&pc->chip);
+ return 0;
}
static const struct of_device_id sti_pwm_of_match[] = {