[PATCH] amba-pl010: clear error flags on rx error

From: Lennert Buytenhek
Date: Thu Nov 30 2006 - 20:18:27 EST


The pl010 primecell documentation specifies that an error indicated via
RSR should be cleared by a write to ECR. We didn't do this, which was
causing errors to be re-reported on every call to pl010_rx_chars().

Doing a write to ECR once we detect an error appears to prevent the
ep93xx console UART driver from going into a mode where it reports
"ttyAM0: X input overrun(s)" every couple of keystrokes.

Signed-off-by: Lennert Buytenhek <buytenh@xxxxxxxxxxxxxx>

Index: linux-2.6.19-rc5/drivers/serial/amba-pl010.c
===================================================================
--- linux-2.6.19-rc5.orig/drivers/serial/amba-pl010.c
+++ linux-2.6.19-rc5/drivers/serial/amba-pl010.c
@@ -129,6 +129,8 @@ static void pl010_rx_chars(struct uart_p
*/
rsr = readb(port->membase + UART01x_RSR) | UART_DUMMY_RSR_RX;
if (unlikely(rsr & UART01x_RSR_ANY)) {
+ writel(0, port->membase + UART01x_ECR);
+
if (rsr & UART01x_RSR_BE) {
rsr &= ~(UART01x_RSR_FE | UART01x_RSR_PE);
port->icount.brk++;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/