spi: qup: Fix order of spi_register_master
authorAndy Gross <agross@codeaurora.org>
Thu, 12 Jun 2014 19:34:11 +0000 (14:34 -0500)
committerMark Brown <broonie@linaro.org>
Sat, 21 Jun 2014 10:11:54 +0000 (11:11 +0100)
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>
drivers/spi/spi-qup.c

index fc1de86d3c8a18a1a9e24c3967955204687b5b85..e783e4ce2cdccf10fee7f813ddc20824db2b0ab6 100644 (file)
@@ -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);