forked from luck/tmp_suning_uos_patched
spi/pxa2xx: fix runtime PM enabling order
In commit7dd6278733
(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 in268d76430d
. Signed-off-by: Antonio Ospite <ao2@ao2.it> Signed-off-by: Mark Brown <broonie@linaro.org>
This commit is contained in:
parent
d6ba32d5c6
commit
836d1a22db
@ -1202,6 +1202,11 @@ static int pxa2xx_spi_probe(struct platform_device *pdev)
|
|||||||
tasklet_init(&drv_data->pump_transfers, pump_transfers,
|
tasklet_init(&drv_data->pump_transfers, pump_transfers,
|
||||||
(unsigned long)drv_data);
|
(unsigned long)drv_data);
|
||||||
|
|
||||||
|
pm_runtime_set_autosuspend_delay(&pdev->dev, 50);
|
||||||
|
pm_runtime_use_autosuspend(&pdev->dev);
|
||||||
|
pm_runtime_set_active(&pdev->dev);
|
||||||
|
pm_runtime_enable(&pdev->dev);
|
||||||
|
|
||||||
/* Register with the SPI framework */
|
/* Register with the SPI framework */
|
||||||
platform_set_drvdata(pdev, drv_data);
|
platform_set_drvdata(pdev, drv_data);
|
||||||
status = devm_spi_register_master(&pdev->dev, master);
|
status = devm_spi_register_master(&pdev->dev, master);
|
||||||
@ -1210,11 +1215,6 @@ static int pxa2xx_spi_probe(struct platform_device *pdev)
|
|||||||
goto out_error_clock_enabled;
|
goto out_error_clock_enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
pm_runtime_set_autosuspend_delay(&pdev->dev, 50);
|
|
||||||
pm_runtime_use_autosuspend(&pdev->dev);
|
|
||||||
pm_runtime_set_active(&pdev->dev);
|
|
||||||
pm_runtime_enable(&pdev->dev);
|
|
||||||
|
|
||||||
return status;
|
return status;
|
||||||
|
|
||||||
out_error_clock_enabled:
|
out_error_clock_enabled:
|
||||||
|
Loading…
Reference in New Issue
Block a user