Skip to content

Commit

Permalink
spi: pxa2xx: Balance runtime PM enable/disable on error
Browse files Browse the repository at this point in the history
Don't undo the PM initialization if we error out before we managed to
initialize it. The call to pm_runtime_disable() without being preceded
by pm_runtime_enable() would disturb the balance of the Force.

In practice, this happens if we fail to allocate any of the GPIOS ("cs",
"ready") due to -EPROBE_DEFER because we're getting probled before the
GPIO driver.

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
Link: https://lore.kernel.org/r/20190719122713.3444318-1-lkundrak@v3.sk
Signed-off-by: Mark Brown <broonie@kernel.org>
  • Loading branch information
Lubomir Rintel authored and Mark Brown committed Jul 22, 2019
1 parent 2922d1c commit 1274204
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions drivers/spi/spi-pxa2xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -1831,14 +1831,16 @@ static int pxa2xx_spi_probe(struct platform_device *pdev)
status = devm_spi_register_controller(&pdev->dev, controller);
if (status != 0) {
dev_err(&pdev->dev, "problem registering spi controller\n");
goto out_error_clock_enabled;
goto out_error_pm_runtime_enabled;
}

return status;

out_error_clock_enabled:
out_error_pm_runtime_enabled:
pm_runtime_put_noidle(&pdev->dev);
pm_runtime_disable(&pdev->dev);

out_error_clock_enabled:
clk_disable_unprepare(ssp->clk);

out_error_dma_irq_alloc:
Expand Down

0 comments on commit 1274204

Please sign in to comment.