]> Pileus Git - ~andy/linux/blobdiff - drivers/tty/serial/mpc52xx_uart.c
Merge tag 'fixes-non-critical' of git://git.kernel.org/pub/scm/linux/kernel/git/arm...
[~andy/linux] / drivers / tty / serial / mpc52xx_uart.c
index b131f2d885d4a56e8d7ec40c59db38723245d1c0..8cf577008ad74799f8957f08a19a94b0d8ca382a 100644 (file)
@@ -775,11 +775,15 @@ mpc52xx_uart_set_termios(struct uart_port *port, struct ktermios *new,
        }
 
        if (new->c_cflag & PARENB) {
+               if (new->c_cflag & CMSPAR)
+                       mr1 |= MPC52xx_PSC_MODE_PARFORCE;
+
+               /* With CMSPAR, PARODD also means high parity (same as termios) */
                mr1 |= (new->c_cflag & PARODD) ?
                        MPC52xx_PSC_MODE_PARODD : MPC52xx_PSC_MODE_PAREVEN;
-       } else
+       } else {
                mr1 |= MPC52xx_PSC_MODE_PARNONE;
-
+       }
 
        mr2 = 0;