diff options
author | Anton Bondarenko <anton.bondarenko.sama@gmail.com> | 2015-12-08 01:43:46 -0500 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2015-12-15 17:40:35 -0500 |
commit | bf9af08cd5151f1915119ea4c6a873d5a4880d74 (patch) | |
tree | b794addf759212df97d03f79ff47d96580e82a5c | |
parent | 3760047a7d83353163b69b96d216a13148a321d9 (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.c | 3 |
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); |