ARM: PL011: Ensure error flags are clear at startup
authorRussell King <rmk+kernel@arm.linux.org.uk>
Wed, 22 Dec 2010 17:09:08 +0000 (17:09 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Wed, 5 Jan 2011 16:58:42 +0000 (16:58 +0000)
The error flags weren't being cleared upon UART startup, which
can cause problems when we add DMA support.  It's good practice
to ensure that these flags are cleared anyway, so let's do so.

This was part of a larger patch from Linus Walleij.

Acked-by: Linus Walleij <linus.walleij@stericsson.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
drivers/serial/amba-pl011.c

index 2c07939be02c4232a6d1133d5b9547a53d067fb5..c77b3eb5142d2952f717c880622200e42ddbde00 100644 (file)
@@ -424,6 +424,10 @@ static int pl011_startup(struct uart_port *port)
        cr = UART01x_CR_UARTEN | UART011_CR_RXE | UART011_CR_TXE;
        writew(cr, uap->port.membase + UART011_CR);
 
+       /* Clear pending error interrupts */
+       writew(UART011_OEIS | UART011_BEIS | UART011_PEIS | UART011_FEIS,
+              uap->port.membase + UART011_ICR);
+
        /*
         * initialise the old status of the modem signals
         */