diff options
Diffstat (limited to 'drivers/tty/serial/sccnxp.c')
| -rw-r--r-- | drivers/tty/serial/sccnxp.c | 9 | 
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/tty/serial/sccnxp.c b/drivers/tty/serial/sccnxp.c index 49e9bbfe6ca..e84b6a3bdd1 100644 --- a/drivers/tty/serial/sccnxp.c +++ b/drivers/tty/serial/sccnxp.c @@ -474,9 +474,7 @@ static void sccnxp_timer(unsigned long data)  	sccnxp_handle_events(s);  	spin_unlock_irqrestore(&s->lock, flags); -	if (!timer_pending(&s->timer)) -		mod_timer(&s->timer, jiffies + -			  usecs_to_jiffies(s->pdata.poll_time_us)); +	mod_timer(&s->timer, jiffies + usecs_to_jiffies(s->pdata.poll_time_us));  }  static irqreturn_t sccnxp_ist(int irq, void *dev_id) @@ -667,13 +665,15 @@ static void sccnxp_set_termios(struct uart_port *port,  	port->read_status_mask = SR_OVR;  	if (termios->c_iflag & INPCK)  		port->read_status_mask |= SR_PE | SR_FE; -	if (termios->c_iflag & (BRKINT | PARMRK)) +	if (termios->c_iflag & (IGNBRK | BRKINT | PARMRK))  		port->read_status_mask |= SR_BRK;  	/* Set status ignore mask */  	port->ignore_status_mask = 0;  	if (termios->c_iflag & IGNBRK)  		port->ignore_status_mask |= SR_BRK; +	if (termios->c_iflag & IGNPAR) +		port->ignore_status_mask |= SR_PE;  	if (!(termios->c_cflag & CREAD))  		port->ignore_status_mask |= SR_PE | SR_OVR | SR_FE | SR_BRK; @@ -986,6 +986,7 @@ static int sccnxp_probe(struct platform_device *pdev)  		return 0;  	} +	uart_unregister_driver(&s->uart);  err_out:  	if (!IS_ERR(s->regulator))  		return regulator_disable(s->regulator);  | 
