aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnton Bondarenko <anton.bondarenko.sama@gmail.com>2015-12-08 01:43:46 -0500
committerMark Brown <broonie@kernel.org>2015-12-15 17:40:35 -0500
commitbf9af08cd5151f1915119ea4c6a873d5a4880d74 (patch)
treeb794addf759212df97d03f79ff47d96580e82a5c
parent3760047a7d83353163b69b96d216a13148a321d9 (diff)
spi: imx: defer spi initialization, if DMA engine is
If SPI device supports DMA mode, but DMA controller is not yet available due to e.g. a delay in the corresponding kernel module initialization, retry to initialize SPI driver later on instead of falling back into PIO only mode. Signed-off-by: Anton Bondarenko <anton.bondarenko.sama@gmail.com> Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r--drivers/spi/spi-imx.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/spi/spi-imx.c b/drivers/spi/spi-imx.c
index c12306099d24..d98c33cb64f9 100644
--- a/drivers/spi/spi-imx.c
+++ b/drivers/spi/spi-imx.c
@@ -1222,6 +1222,9 @@ static int spi_imx_probe(struct platform_device *pdev)
1222 */ 1222 */
1223 if (is_imx51_ecspi(spi_imx)) { 1223 if (is_imx51_ecspi(spi_imx)) {
1224 ret = spi_imx_sdma_init(&pdev->dev, spi_imx, master, res); 1224 ret = spi_imx_sdma_init(&pdev->dev, spi_imx, master, res);
1225 if (ret == -EPROBE_DEFER)
1226 goto out_clk_put;
1227
1225 if (ret < 0) 1228 if (ret < 0)
1226 dev_err(&pdev->dev, "dma setup error %d, use pio\n", 1229 dev_err(&pdev->dev, "dma setup error %d, use pio\n",
1227 ret); 1230 ret);