public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
* [Q] PL011 DMA Rx, using ste_dma40
@ 2013-11-27 16:38 Guennadi Liakhovetski
  2013-11-27 20:30 ` Russell King - ARM Linux
  0 siblings, 1 reply; 3+ messages in thread
From: Guennadi Liakhovetski @ 2013-11-27 16:38 UTC (permalink / raw)
  To: linux-arm-kernel

Hi

I'm trying to get a PL011 UART to work in DMA mode with an alternative 
DMAC. Transmission works, reception is more problematic. I can receive a 
complete page of data (4096 bytes), but nothing below that triggers a 
reception. Is this expected if no polling is used, as configured by the 
dma_rx_poll_timeout platform parameter, or should it work, triggered by 
the Rx timeout UART interrupt?

Looking at the amba-pl011 UART driver it seems, that it expects an Rx FIFO 
timeout IRQ to trigger if fewer than a full Rx DMA buffer bytes of data 
are received along the lines of pl011_dma_rx_irq(). Such an Rx FIFO 
timeout interrupt should be raised by the UART if a timeout occurs after 
fewer that an Rx threshold bytes are received in the UART FIFO. However, 
as soon as any data is received by the UART the DMA request line is 
toggled, which causes the DMAC to immediately read the bytes out of the 
UART, so, no timeout is occurring.

How is it working in the original set up with ste_dma40 compatible DMACs? 
Or is reception of < 4096 bytes of data, using DMA only working with 
polling, for which there's currently no DT binding?

Thanks
Guennadi
---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2013-11-27 20:45 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-11-27 16:38 [Q] PL011 DMA Rx, using ste_dma40 Guennadi Liakhovetski
2013-11-27 20:30 ` Russell King - ARM Linux
2013-11-27 20:45   ` Guennadi Liakhovetski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox