powerpc/mpc5200: Make PSC UART driver update serial errors counters
authorRené Bürgel <r.buergel@unicontrol.de>
Sun, 21 Dec 2008 09:54:31 +0000 (02:54 -0700)
committerGrant Likely <grant.likely@secretlab.ca>
Sun, 21 Dec 2008 09:54:31 +0000 (02:54 -0700)
This patch adds the capability to the mpc52xx-uart to report framing
errors, parity errors, breaks and overruns to userspace. These values
may be requested in userspace by using the ioctl TIOCGICOUNT.

Signed-off-by: René Bürgel <r.buergel@unicontrol.de>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
drivers/serial/mpc52xx_uart.c

index 28c00c3d58f58273af3e1ab9bacd6f2df9e401c8..d82650d5439145916f349004f24029682ad5fde7 100644 (file)
@@ -752,10 +752,15 @@ mpc52xx_uart_int_rx_chars(struct uart_port *port)
                        if (status & MPC52xx_PSC_SR_RB) {
                                flag = TTY_BREAK;
                                uart_handle_break(port);
-                       } else if (status & MPC52xx_PSC_SR_PE)
+                               port->icount.brk++;
+                       } else if (status & MPC52xx_PSC_SR_PE) {
                                flag = TTY_PARITY;
-                       else if (status & MPC52xx_PSC_SR_FE)
+                               port->icount.parity++;
+                       }
+                       else if (status & MPC52xx_PSC_SR_FE) {
                                flag = TTY_FRAME;
+                               port->icount.frame++;
+                       }
 
                        /* Clear error condition */
                        out_8(&PSC(port)->command, MPC52xx_PSC_RST_ERR_STAT);
@@ -769,6 +774,7 @@ mpc52xx_uart_int_rx_chars(struct uart_port *port)
                         * affect the current character
                         */
                        tty_insert_flip_char(tty, 0, TTY_OVERRUN);
+                       port->icount.overrun++;
                }
        }