summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Gross <agross@codeaurora.org>2014-06-12 23:34:11 +0400
committerMark Brown <broonie@linaro.org>2014-06-21 14:11:54 +0400
commit045c243a511c8b688d36659cc3f781e84e9c2ddb (patch)
tree5812f2a134c1b8d551313f2f155dd357205e7cce
parent7171511eaec5bf23fb06078f59784a3a0626b38f (diff)
downloadlinux-045c243a511c8b688d36659cc3f781e84e9c2ddb.tar.xz
spi: qup: Fix order of spi_register_master
This patch moves the devm_spi_register_master below the initialization of the runtime_pm. If done in the wrong order, the spi_register_master fails if any probed slave devices issue SPI transactions. Signed-off-by: Andy Gross <agross@codeaurora.org> Acked-by: Ivan T. Ivanov <iivanov@mm-sol.com> Signed-off-by: Mark Brown <broonie@linaro.org>
-rw-r--r--drivers/spi/spi-qup.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/spi/spi-qup.c b/drivers/spi/spi-qup.c
index fc1de86d3c8a..e783e4ce2cdc 100644
--- a/drivers/spi/spi-qup.c
+++ b/drivers/spi/spi-qup.c
@@ -640,16 +640,19 @@ static int spi_qup_probe(struct platform_device *pdev)
if (ret)
goto error;
- ret = devm_spi_register_master(dev, master);
- if (ret)
- goto error;
-
pm_runtime_set_autosuspend_delay(dev, MSEC_PER_SEC);
pm_runtime_use_autosuspend(dev);
pm_runtime_set_active(dev);
pm_runtime_enable(dev);
+
+ ret = devm_spi_register_master(dev, master);
+ if (ret)
+ goto disable_pm;
+
return 0;
+disable_pm:
+ pm_runtime_disable(&pdev->dev);
error:
clk_disable_unprepare(cclk);
clk_disable_unprepare(iclk);