at91: serial: Can't use DMA on 4.x kernels in RS-485 mode on at91sam9x5
sylvain.rochet at finsecur.com
Tue Apr 4 13:32:50 PDT 2017
On Tue, Apr 04, 2017 at 08:28:34PM +0000, Bryan Evenson wrote:
> With the 3.10 kernel, I had to use the TX DMA only. For some reason
> receive wouldn't work for me with the DMA. Now with the latest on the
> linux-4.4-at91 branch I can't use the TX DMA. The data is transmitted
> correctly out the USART (verified on a receiving device), but then the
> return message is not received. I verified the same results when both
> RX&TX DMA was enabled and only when the TX DMA was enabled. If I use
> only the RX DMA, everything works fine if I have only one device on
> the RS-485 port. As soon as I daisy chain more than one device on an
> RS-485 port, then I start dropping messages. If I turn off both the
> RX and TX DMA, then all data transfers work just fine.
> I'd like to get both TX and RX DMA working for all three RS-485 ports.
> Anyone have any suggestions for what to look at to get DMA working
> while in RS-485 mode? I'm planning to start trying a git bisect, but
> given these are different branches I wasn't sure how well that was
> going to work.
Did you check that you didn't run out of available DMA channels on each
DMA controller ? AT91SAM9G25 unfortunately doesn't have much of them.
More information about the linux-arm-kernel