aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAntonio Ospite <ao2@ao2.it>2014-05-30 12:18:09 -0400
committerMark Brown <broonie@linaro.org>2014-06-01 06:40:50 -0400
commit836d1a22db9ee0a466301465e873bc94da86cb15 (patch)
treed990c0d64f2031c19775fbc7ed1b57ec5085e454
parentd6ba32d5c60f569d252ec9dcd96cd46b19785b60 (diff)
spi/pxa2xx: fix runtime PM enabling order
In commit 7dd62787334ac6e0e2a0ef3f20bb1936ac431b04 (spi/pxa2xx: Convert to core runtime PM) master->auto_runtime_pm was set to true. In this case pm_runtime_enable() must be called *before* spi_register_master(), otherwise the kernel hangs with this error message: spi_master spi0: Failed to power device: -13 A similar fix, but for spi/hspi, was applied in 268d76430d1b68c340687357ffd18b4b12d02269. Signed-off-by: Antonio Ospite <ao2@ao2.it> Signed-off-by: Mark Brown <broonie@linaro.org>
-rw-r--r--drivers/spi/spi-pxa2xx.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/spi/spi-pxa2xx.c b/drivers/spi/spi-pxa2xx.c
index 41185d0557fa..a07b75814442 100644
--- a/drivers/spi/spi-pxa2xx.c
+++ b/drivers/spi/spi-pxa2xx.c
@@ -1202,6 +1202,11 @@ static int pxa2xx_spi_probe(struct platform_device *pdev)
1202 tasklet_init(&drv_data->pump_transfers, pump_transfers, 1202 tasklet_init(&drv_data->pump_transfers, pump_transfers,
1203 (unsigned long)drv_data); 1203 (unsigned long)drv_data);
1204 1204
1205 pm_runtime_set_autosuspend_delay(&pdev->dev, 50);
1206 pm_runtime_use_autosuspend(&pdev->dev);
1207 pm_runtime_set_active(&pdev->dev);
1208 pm_runtime_enable(&pdev->dev);
1209
1205 /* Register with the SPI framework */ 1210 /* Register with the SPI framework */
1206 platform_set_drvdata(pdev, drv_data); 1211 platform_set_drvdata(pdev, drv_data);
1207 status = devm_spi_register_master(&pdev->dev, master); 1212 status = devm_spi_register_master(&pdev->dev, master);
@@ -1210,11 +1215,6 @@ static int pxa2xx_spi_probe(struct platform_device *pdev)
1210 goto out_error_clock_enabled; 1215 goto out_error_clock_enabled;
1211 } 1216 }
1212 1217
1213 pm_runtime_set_autosuspend_delay(&pdev->dev, 50);
1214 pm_runtime_use_autosuspend(&pdev->dev);
1215 pm_runtime_set_active(&pdev->dev);
1216 pm_runtime_enable(&pdev->dev);
1217
1218 return status; 1218 return status;
1219 1219
1220out_error_clock_enabled: 1220out_error_clock_enabled: