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 <[EMAIL PROTECTED]>

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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to