diff options
author | Anton Bondarenko <anton.bondarenko.sama@gmail.com> | 2015-12-08 07:43:46 +0100 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2015-12-15 23:40:35 +0100 |
commit | bf9af08cd5151f1915119ea4c6a873d5a4880d74 (patch) | |
tree | b794addf759212df97d03f79ff47d96580e82a5c /drivers/spi | |
parent | spi: imx: return error from dma channel request (diff) | |
download | linux-bf9af08cd5151f1915119ea4c6a873d5a4880d74.tar.xz linux-bf9af08cd5151f1915119ea4c6a873d5a4880d74.zip |
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>
Diffstat (limited to 'drivers/spi')
-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) */ if (is_imx51_ecspi(spi_imx)) { ret = spi_imx_sdma_init(&pdev->dev, spi_imx, master, res); + if (ret == -EPROBE_DEFER) + goto out_clk_put; + if (ret < 0) dev_err(&pdev->dev, "dma setup error %d, use pio\n", ret); |