diff options
author | Lennert Buytenhek <buytenh@wantstofly.org> | 2006-12-06 20:39:57 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-07 08:39:44 -0800 |
commit | a4ed06ad83acc3b7dafc018bc0b27469e787e27d (patch) | |
tree | 26ce210d81b77b40d08b96a5a7772f806eb43d89 /drivers/serial | |
parent | 9468f687d95d1825fd2f2c2f74e1a59429ef25d3 (diff) | |
download | op-kernel-dev-a4ed06ad83acc3b7dafc018bc0b27469e787e27d.zip op-kernel-dev-a4ed06ad83acc3b7dafc018bc0b27469e787e27d.tar.gz |
[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 <buytenh@wantstofly.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/serial')
-rw-r--r-- | drivers/serial/amba-pl010.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/serial/amba-pl010.c b/drivers/serial/amba-pl010.c index 4213fab..4d3626e 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++; |