diff options
| author | Andy Gross <agross@codeaurora.org> | 2014-06-12 15:34:11 -0400 |
|---|---|---|
| committer | Mark Brown <broonie@linaro.org> | 2014-06-21 06:11:54 -0400 |
| commit | 045c243a511c8b688d36659cc3f781e84e9c2ddb (patch) | |
| tree | 5812f2a134c1b8d551313f2f155dd357205e7cce | |
| parent | 7171511eaec5bf23fb06078f59784a3a0626b38f (diff) | |
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.c | 11 |
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) | |||
| 640 | if (ret) | 640 | if (ret) |
| 641 | goto error; | 641 | goto error; |
| 642 | 642 | ||
| 643 | ret = devm_spi_register_master(dev, master); | ||
| 644 | if (ret) | ||
| 645 | goto error; | ||
| 646 | |||
| 647 | pm_runtime_set_autosuspend_delay(dev, MSEC_PER_SEC); | 643 | pm_runtime_set_autosuspend_delay(dev, MSEC_PER_SEC); |
| 648 | pm_runtime_use_autosuspend(dev); | 644 | pm_runtime_use_autosuspend(dev); |
| 649 | pm_runtime_set_active(dev); | 645 | pm_runtime_set_active(dev); |
| 650 | pm_runtime_enable(dev); | 646 | pm_runtime_enable(dev); |
| 647 | |||
| 648 | ret = devm_spi_register_master(dev, master); | ||
| 649 | if (ret) | ||
| 650 | goto disable_pm; | ||
| 651 | |||
| 651 | return 0; | 652 | return 0; |
| 652 | 653 | ||
| 654 | disable_pm: | ||
| 655 | pm_runtime_disable(&pdev->dev); | ||
| 653 | error: | 656 | error: |
| 654 | clk_disable_unprepare(cclk); | 657 | clk_disable_unprepare(cclk); |
| 655 | clk_disable_unprepare(iclk); | 658 | clk_disable_unprepare(iclk); |
