OSDN Git Service

serial: pl011: change Rx burst size to half of trigger level
authorGuennadi Liakhovetski <g.liakhovetski@gmx.de>
Sat, 12 Apr 2014 17:47:17 +0000 (19:47 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 16 Apr 2014 21:17:44 +0000 (14:17 -0700)
The amba-pl011.c driver sets DMA burst size equal to FIFO trigger level.
If now exactly DMA burst size bytes are received, the DMAC will retrieve
them all and no Rx timeout interrupt will be generated. To fix that set
the burst size to half the FIFO trigger level.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/amba-pl011.c

index d4eda24..ca0ec60 100644 (file)
@@ -318,7 +318,7 @@ static void pl011_dma_probe_initcall(struct device *dev, struct uart_amba_port *
                        .src_addr = uap->port.mapbase + UART01x_DR,
                        .src_addr_width = DMA_SLAVE_BUSWIDTH_1_BYTE,
                        .direction = DMA_DEV_TO_MEM,
-                       .src_maxburst = uap->fifosize >> 1,
+                       .src_maxburst = uap->fifosize >> 2,
                        .device_fc = false,
                };