Bläddra i källkod

powerpc/mpc5200: Make PSC UART driver update serial errors counters

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>
René Bürgel 16 år sedan
förälder
incheckning
b65149880d
1 ändrade filer med 8 tillägg och 2 borttagningar
  1. 8 2
      drivers/serial/mpc52xx_uart.c

+ 8 - 2
drivers/serial/mpc52xx_uart.c

@@ -752,10 +752,15 @@ mpc52xx_uart_int_rx_chars(struct uart_port *port)
 			if (status & MPC52xx_PSC_SR_RB) {
 			if (status & MPC52xx_PSC_SR_RB) {
 				flag = TTY_BREAK;
 				flag = TTY_BREAK;
 				uart_handle_break(port);
 				uart_handle_break(port);
-			} else if (status & MPC52xx_PSC_SR_PE)
+				port->icount.brk++;
+			} else if (status & MPC52xx_PSC_SR_PE) {
 				flag = TTY_PARITY;
 				flag = TTY_PARITY;
-			else if (status & MPC52xx_PSC_SR_FE)
+				port->icount.parity++;
+			}
+			else if (status & MPC52xx_PSC_SR_FE) {
 				flag = TTY_FRAME;
 				flag = TTY_FRAME;
+				port->icount.frame++;
+			}
 
 
 			/* Clear error condition */
 			/* Clear error condition */
 			out_8(&PSC(port)->command, MPC52xx_PSC_RST_ERR_STAT);
 			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
 			 * affect the current character
 			 */
 			 */
 			tty_insert_flip_char(tty, 0, TTY_OVERRUN);
 			tty_insert_flip_char(tty, 0, TTY_OVERRUN);
+			port->icount.overrun++;
 		}
 		}
 	}
 	}