[Q] PL011 DMA Rx, using ste_dma40
Guennadi Liakhovetski
g.liakhovetski at gmx.de
Wed Nov 27 11:38:43 EST 2013
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/
More information about the linux-arm-kernel
mailing list