> -----Original Message----- > From: Igor Plyatov <plya...@gmail.com> > Sent: 2019年4月2日 15:20 > To: Robin Gong <yibin.g...@nxp.com>; Uwe Kleine-König > <u.kleine-koe...@pengutronix.de> > Cc: linux-kernel@vger.kernel.org; linux-arm-ker...@lists.infradead.org; > linux-...@vger.kernel.org; dl-linux-imx <linux-...@nxp.com>; Fabio Estevam > <feste...@gmail.com>; Pengutronix Kernel Team <ker...@pengutronix.de>; > Sascha Hauer <s.ha...@pengutronix.de>; Shawn Guo > <shawn...@kernel.org>; Mark Brown <broo...@kernel.org>; > dmaeng...@vger.kernel.org; Vinod Koul <vk...@kernel.org>; Dan Williams > <dan.j.willi...@intel.com>; Andy Duan <fugang.d...@nxp.com>; Han Xu > <han...@nxp.com>; Clark Wang <xiaoning.w...@nxp.com> > Subject: Re: Issues with i.MX SPI DMA transfers > > 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? I have quick test with spidev_test loopback, but didn't meet your error, Is your code the almost latest code in linux-next as mine?
root@imx6qpdlsolox:~# cat /proc/interrupts | grep sdma 48: 37 GPC 2 Level sdma -lt@imx6qpdlsolox:~# ./spidev_test -D /dev/spidev0.0 -s 1200000 -b 8 -S 64 -I 1 -l spi mode: 0x20 bits per word: 8 max speed: 1200000 Hz (1200 KHz) root@imx6qpdlsolox:~# cat /proc/interrupts | grep sdma 48: 43 GPC 2 Level sdma ./spidev_test -D /dev/spidev0.0 -s 1200000 -b 8 -S 512 -I 1 -l spi mode: 0x20 bits per word: 8 max speed: 1200000 Hz (1200 KHz) total: tx 0.5KB, rx 0.5KB > > Best wishes. > -- > Igor Plyatov