Skip to content

Commit

Permalink
pwm: rcar: Fix late Runtime PM enablement
Browse files Browse the repository at this point in the history
Runtime PM should be enabled before calling pwmchip_add(), as PWM users
can appear immediately after the PWM chip has been added.
Likewise, Runtime PM should be disabled after the removal of the PWM
chip.

Fixes: ed6c147 ("pwm: Add support for R-Car PWM Timer")
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
  • Loading branch information
geertu authored and thierryreding committed Mar 30, 2020
1 parent 5928ce0 commit 1451a3e
Showing 1 changed file with 7 additions and 3 deletions.
10 changes: 7 additions & 3 deletions drivers/pwm/pwm-rcar.c
Original file line number Diff line number Diff line change
Expand Up @@ -229,24 +229,28 @@ static int rcar_pwm_probe(struct platform_device *pdev)
rcar_pwm->chip.base = -1;
rcar_pwm->chip.npwm = 1;

pm_runtime_enable(&pdev->dev);

ret = pwmchip_add(&rcar_pwm->chip);
if (ret < 0) {
dev_err(&pdev->dev, "failed to register PWM chip: %d\n", ret);
pm_runtime_disable(&pdev->dev);
return ret;
}

pm_runtime_enable(&pdev->dev);

return 0;
}

static int rcar_pwm_remove(struct platform_device *pdev)
{
struct rcar_pwm_chip *rcar_pwm = platform_get_drvdata(pdev);
int ret;

ret = pwmchip_remove(&rcar_pwm->chip);

pm_runtime_disable(&pdev->dev);

return pwmchip_remove(&rcar_pwm->chip);
return ret;
}

static const struct of_device_id rcar_pwm_of_table[] = {
Expand Down

0 comments on commit 1451a3e

Please sign in to comment.