[PATCH] spi: imx: Don't expect DMA for i.MX{25, 35, 50, 51, 53} cspi devices

Martin Kaiser martin at kaiser.cx
Wed May 15 12:26:17 PDT 2024


Thus wrote Martin Kaiser (martin at kaiser.cx):

> > However this breaks SPI transfers, when I try to read out an MRAM I get:

> > 	root at ecu02:~ hexdump -C /dev/mtd4
> > 	[   71.813807] spi_imx 43fa4000.spi: I/O Error in DMA TX
> > 	[   71.819173] spi-nor spi0.2: SPI transfer failed: -110
> > 	[   71.829129] spi_master spi0: failed to transfer one message from queue
> > 	[   71.843962] spi_master spi0: noqueue transfer failed

> > So it would indeed be interesting if you ever managed to use DMA on
> > i.MX25.

> I believe so. Looking into my notes from 2016 (when I last tried this), I got
> the -110 error when the SMC bit in CONREG wasn't set. But this should now be
> done in mx31_prepare_transfer if DMA is used...

> I'll try to set up a test some time next week.

I can now reproduce the dma tx error. My test board uses a dummy spidev device
on cspi1 and configures loopback on the cspi1 controller (disabling loopback
makes no difference).

I'm relatively sure that this setup did work back in 2016/17.

Commit 24bb244e02a6 ("ARM: i.MX25: globally disable supervisor protect") was
required before any DMA transfers started working on imx25. As far as I can
see, this code is still present.

I'll look into this a bit more as time permits.

   Martin



More information about the linux-arm-kernel mailing list