From: Lennert Buytenhek Date: Thu, 7 Dec 2006 04:39:57 +0000 (-0800) Subject: [PATCH] amba-pl010: clear error flags on rx error X-Git-Tag: v2.6.20-rc1~145^2^2~72 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=a4ed06ad83acc3b7dafc018bc0b27469e787e27d;p=linux-2.6-omap-h63xx.git [PATCH] amba-pl010: clear error flags on rx error 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 Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/drivers/serial/amba-pl010.c b/drivers/serial/amba-pl010.c index 4213fabc62b..4d3626ef464 100644 --- a/drivers/serial/amba-pl010.c +++ b/drivers/serial/amba-pl010.c @@ -129,6 +129,8 @@ static void pl010_rx_chars(struct uart_port *port) */ 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++;