serial: fsl_lpuart: clear unsupported options in .rs485_config()
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Tue, 18 Jul 2017 10:59:40 +0000 (12:59 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 30 Jul 2017 14:46:06 +0000 (07:46 -0700)
The struct serial_rs485 parameter is both input and output and is
supposed to hold the actually used configuration on return. So clear
unsupported settings.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/fsl_lpuart.c

index 5b4721bd70f0bb31f57caaa6aeb8bd1e3690c2e5..d24270fe3cbeb94904ca354d180679cd168d0f0b 100644 (file)
@@ -1076,6 +1076,11 @@ static int lpuart_config_rs485(struct uart_port *port,
                ~(UARTMODEM_TXRTSPOL | UARTMODEM_TXRTSE);
        writeb(modem, sport->port.membase + UARTMODEM);
 
+       /* clear unsupported configurations */
+       rs485->delay_rts_before_send = 0;
+       rs485->delay_rts_after_send = 0;
+       rs485->flags &= ~SER_RS485_RX_DURING_TX;
+
        if (rs485->flags & SER_RS485_ENABLED) {
                /* Enable auto RS-485 RTS mode */
                modem |= UARTMODEM_TXRTSE;