Message ID | 20220802163854.1055323-1-shenwei.wang@nxp.com |
---|---|
State | Superseded |
Headers | show |
Series | [1/1] serial: fsl_lpuart: RS485 RTS polariy is inverse | expand |
On 02. 08. 22, 18:38, Shenwei Wang wrote: > The setting of RS485 RTS polarity is inverse in the current driver. > > When the property of 'rs485-rts-active-low' is enabled in the dts node, > the RTS signal should be LOW during sending. Otherwise, if there is no > such a property, the RTS should be HIGH during sending. What commit this fixes? I.e. I am missing a Fixes tag below. > Signed-off-by: Nicolas Diaz <nicolas.diaz@nxp.com> > Signed-off-by: Shenwei Wang <shenwei.wang@nxp.com> > --- > drivers/tty/serial/fsl_lpuart.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/tty/serial/fsl_lpuart.c b/drivers/tty/serial/fsl_lpuart.c > index afa0f941c862f..abc3a3674bc39 100644 > --- a/drivers/tty/serial/fsl_lpuart.c > +++ b/drivers/tty/serial/fsl_lpuart.c > @@ -1394,9 +1394,9 @@ static int lpuart_config_rs485(struct uart_port *port, struct ktermios *termios, > * Note: UART is assumed to be active high. > */ > if (rs485->flags & SER_RS485_RTS_ON_SEND) > - modem &= ~UARTMODEM_TXRTSPOL; > - else if (rs485->flags & SER_RS485_RTS_AFTER_SEND) > modem |= UARTMODEM_TXRTSPOL; > + else if (rs485->flags & SER_RS485_RTS_AFTER_SEND) > + modem &= ~UARTMODEM_TXRTSPOL; > } > > writeb(modem, sport->port.membase + UARTMODEM); thanks,
> -----Original Message----- > From: Jiri Slaby <jirislaby@kernel.org> > Sent: Thursday, August 4, 2022 1:51 AM > To: Shenwei Wang <shenwei.wang@nxp.com>; gregkh@linuxfoundation.org > Cc: linux-serial@vger.kernel.org; linux-kernel@vger.kernel.org; dl-linux-imx > <linux-imx@nxp.com>; Nicolas Diaz <nicolas.diaz@nxp.com> > Subject: [EXT] Re: [PATCH 1/1] serial: fsl_lpuart: RS485 RTS polariy is inverse > > Caution: EXT Email > > On 02. 08. 22, 18:38, Shenwei Wang wrote: > > The setting of RS485 RTS polarity is inverse in the current driver. > > > > When the property of 'rs485-rts-active-low' is enabled in the dts > > node, the RTS signal should be LOW during sending. Otherwise, if there > > is no such a property, the RTS should be HIGH during sending. > > What commit this fixes? I.e. I am missing a Fixes tag below. It is a fix for the following commit: Fixes: 03895cf41d18 ("tty: serial: fsl_lpuart: Add support for RS-485") Should I send out a new version to update it? Thanks, Shenwei > > > Signed-off-by: Nicolas Diaz <nicolas.diaz@nxp.com> > > Signed-off-by: Shenwei Wang <shenwei.wang@nxp.com> > > --- > > drivers/tty/serial/fsl_lpuart.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/tty/serial/fsl_lpuart.c > > b/drivers/tty/serial/fsl_lpuart.c index afa0f941c862f..abc3a3674bc39 > > 100644 > > --- a/drivers/tty/serial/fsl_lpuart.c > > +++ b/drivers/tty/serial/fsl_lpuart.c > > @@ -1394,9 +1394,9 @@ static int lpuart_config_rs485(struct uart_port *port, > struct ktermios *termios, > > * Note: UART is assumed to be active high. > > */ > > if (rs485->flags & SER_RS485_RTS_ON_SEND) > > - modem &= ~UARTMODEM_TXRTSPOL; > > - else if (rs485->flags & SER_RS485_RTS_AFTER_SEND) > > modem |= UARTMODEM_TXRTSPOL; > > + else if (rs485->flags & SER_RS485_RTS_AFTER_SEND) > > + modem &= ~UARTMODEM_TXRTSPOL; > > } > > > > writeb(modem, sport->port.membase + UARTMODEM); > > thanks, > -- > js > suse labs
On 04. 08. 22, 16:35, Shenwei Wang wrote: >> On 02. 08. 22, 18:38, Shenwei Wang wrote: >>> The setting of RS485 RTS polarity is inverse in the current driver. >>> >>> When the property of 'rs485-rts-active-low' is enabled in the dts >>> node, the RTS signal should be LOW during sending. Otherwise, if there >>> is no such a property, the RTS should be HIGH during sending. >> >> What commit this fixes? I.e. I am missing a Fixes tag below. > > It is a fix for the following commit: > Fixes: 03895cf41d18 ("tty: serial: fsl_lpuart: Add support for RS-485") > > Should I send out a new version to update it? It's up to Greg, but I guess so.
diff --git a/drivers/tty/serial/fsl_lpuart.c b/drivers/tty/serial/fsl_lpuart.c index afa0f941c862f..abc3a3674bc39 100644 --- a/drivers/tty/serial/fsl_lpuart.c +++ b/drivers/tty/serial/fsl_lpuart.c @@ -1394,9 +1394,9 @@ static int lpuart_config_rs485(struct uart_port *port, struct ktermios *termios, * Note: UART is assumed to be active high. */ if (rs485->flags & SER_RS485_RTS_ON_SEND) - modem &= ~UARTMODEM_TXRTSPOL; - else if (rs485->flags & SER_RS485_RTS_AFTER_SEND) modem |= UARTMODEM_TXRTSPOL; + else if (rs485->flags & SER_RS485_RTS_AFTER_SEND) + modem &= ~UARTMODEM_TXRTSPOL; } writeb(modem, sport->port.membase + UARTMODEM);