Re: Issues with i.MX SPI DMA transfers

From: Igor Plyatov
Date: Tue Apr 02 2019 - 03:20:33 EST


Dear Robin Gong,


Sorry...below another sdma patch(ad0d92d7ba6a) need to be reverted, because spi driver may dynamically change burst length.


now I have reverted patch ad0d92d7ba6a.

Patches 0001-dma-engine-imx-sdma-add-mcu_2_ecspi-script.patch and 0002-spi-spi-imx-fix-ERR009165.patch are applied.


Kernel log show messages

[ÂÂ 29.202639] imx-sdma 20ec000.sdma: loaded firmware 3.3
[ÂÂ 29.238595] spi_imx 2008000.spi: probed
[ÂÂ 29.242802] spi_imx 200c000.spi: probed
[ÂÂ 29.245217] spi_imx 2018000.spi: probed

SPI DMA transfers still not work.

If I test 32 byte transfers, then they work fine. But 64 byte transfers fails always and I see error messages

root@cr7:~# spidev_test -D /dev/spidev4.1 -s 1200000 -b 8 -S 64 -I 1 -l
spi mode: 0x20
bits per word: 8
max speed: 1200000 Hz (1200 KHz)
[Â 423.686736] spi_master spi4: I/O Error in DMA RX
[Â 423.691392] spidev spi4.1: SPI transfer failed: -110
[Â 423.696382] spi_master spi4: failed to transfer one message from queue
can't send spi message: Connection timed out
Aborted (core dumped)

I suppose, transfers shorter then 64 bytes made with help of PIO.

Robin, is there any chance for you to find some time and look at this issue again?

Best wishes.
--
Igor Plyatov