diff options
Diffstat (limited to 'drivers/tty/serial/mpc52xx_uart.c')
| -rw-r--r-- | drivers/tty/serial/mpc52xx_uart.c | 10 | 
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/tty/serial/mpc52xx_uart.c b/drivers/tty/serial/mpc52xx_uart.c index bedac0d4c9c..8cf577008ad 100644 --- a/drivers/tty/serial/mpc52xx_uart.c +++ b/drivers/tty/serial/mpc52xx_uart.c @@ -598,7 +598,7 @@ static struct psc_ops mpc512x_psc_ops = {  };  #endif -static struct psc_ops *psc_ops; +static const struct psc_ops *psc_ops;  /* ======================================================================== */  /* UART operations                                                          */ @@ -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;  |