2023-04-13 05:59:10

by Sherry Sun

[permalink] [raw]
Subject: [PATCH] tty: serial: fsl_lpuart: use UARTMODIR register bits for lpuart32 platform

For lpuart32 platforms, UARTMODIR register is used instead of UARTMODEM.
So here should configure the corresponding UARTMODIR register bits.

Fixes: 67b01837861c ("tty: serial: lpuart: Add RS485 support for 32-bit uart flavour")
Signed-off-by: Sherry Sun <[email protected]>
---
drivers/tty/serial/fsl_lpuart.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/tty/serial/fsl_lpuart.c b/drivers/tty/serial/fsl_lpuart.c
index 074bfed57fc9..9845d3f5b84b 100644
--- a/drivers/tty/serial/fsl_lpuart.c
+++ b/drivers/tty/serial/fsl_lpuart.c
@@ -1406,12 +1406,12 @@ static int lpuart32_config_rs485(struct uart_port *port, struct ktermios *termio
struct lpuart_port, port);

unsigned long modem = lpuart32_read(&sport->port, UARTMODIR)
- & ~(UARTMODEM_TXRTSPOL | UARTMODEM_TXRTSE);
+ & ~(UARTMODIR_TXRTSPOL | UARTMODIR_TXRTSE);
lpuart32_write(&sport->port, modem, UARTMODIR);

if (rs485->flags & SER_RS485_ENABLED) {
/* Enable auto RS-485 RTS mode */
- modem |= UARTMODEM_TXRTSE;
+ modem |= UARTMODIR_TXRTSE;

/*
* The hardware defaults to RTS logic HIGH while transfer.
@@ -1420,9 +1420,9 @@ static int lpuart32_config_rs485(struct uart_port *port, struct ktermios *termio
* Note: UART is assumed to be active high.
*/
if (rs485->flags & SER_RS485_RTS_ON_SEND)
- modem |= UARTMODEM_TXRTSPOL;
+ modem |= UARTMODIR_TXRTSPOL;
else if (rs485->flags & SER_RS485_RTS_AFTER_SEND)
- modem &= ~UARTMODEM_TXRTSPOL;
+ modem &= ~UARTMODIR_TXRTSPOL;
}

lpuart32_write(&sport->port, modem, UARTMODIR);
--
2.17.1


2023-04-13 08:58:40

by Ilpo Järvinen

[permalink] [raw]
Subject: Re: [PATCH] tty: serial: fsl_lpuart: use UARTMODIR register bits for lpuart32 platform

On Thu, 13 Apr 2023, Sherry Sun wrote:

> For lpuart32 platforms, UARTMODIR register is used instead of UARTMODEM.
> So here should configure the corresponding UARTMODIR register bits.
>
> Fixes: 67b01837861c ("tty: serial: lpuart: Add RS485 support for 32-bit uart flavour")

The patch is good but I don't think Fixes tag is warranted here because
TXRTSPOL and TXRTSE bits are the same for both registers. ...So this
is mostly to avoid reader confusion rather than fix an actual problem.

Reviewed-by: Ilpo J?rvinen <[email protected]>

--
i.

> Signed-off-by: Sherry Sun <[email protected]>
> ---
> drivers/tty/serial/fsl_lpuart.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/tty/serial/fsl_lpuart.c b/drivers/tty/serial/fsl_lpuart.c
> index 074bfed57fc9..9845d3f5b84b 100644
> --- a/drivers/tty/serial/fsl_lpuart.c
> +++ b/drivers/tty/serial/fsl_lpuart.c
> @@ -1406,12 +1406,12 @@ static int lpuart32_config_rs485(struct uart_port *port, struct ktermios *termio
> struct lpuart_port, port);
>
> unsigned long modem = lpuart32_read(&sport->port, UARTMODIR)
> - & ~(UARTMODEM_TXRTSPOL | UARTMODEM_TXRTSE);
> + & ~(UARTMODIR_TXRTSPOL | UARTMODIR_TXRTSE);
> lpuart32_write(&sport->port, modem, UARTMODIR);
>
> if (rs485->flags & SER_RS485_ENABLED) {
> /* Enable auto RS-485 RTS mode */
> - modem |= UARTMODEM_TXRTSE;
> + modem |= UARTMODIR_TXRTSE;
>
> /*
> * The hardware defaults to RTS logic HIGH while transfer.
> @@ -1420,9 +1420,9 @@ static int lpuart32_config_rs485(struct uart_port *port, struct ktermios *termio
> * Note: UART is assumed to be active high.
> */
> if (rs485->flags & SER_RS485_RTS_ON_SEND)
> - modem |= UARTMODEM_TXRTSPOL;
> + modem |= UARTMODIR_TXRTSPOL;
> else if (rs485->flags & SER_RS485_RTS_AFTER_SEND)
> - modem &= ~UARTMODEM_TXRTSPOL;
> + modem &= ~UARTMODIR_TXRTSPOL;
> }
>
> lpuart32_write(&sport->port, modem, UARTMODIR);
>

2023-04-14 02:05:05

by Sherry Sun

[permalink] [raw]
Subject: RE: [PATCH] tty: serial: fsl_lpuart: use UARTMODIR register bits for lpuart32 platform



> -----Original Message-----
> From: Ilpo Järvinen <[email protected]>
> Sent: 2023年4月13日 16:56
> To: Sherry Sun <[email protected]>
> Cc: Greg Kroah-Hartman <[email protected]>; Jiri Slaby
> <[email protected]>; [email protected]; linux-serial <linux-
> [email protected]>; LKML <[email protected]>; dl-linux-imx
> <[email protected]>
> Subject: Re: [PATCH] tty: serial: fsl_lpuart: use UARTMODIR register bits for
> lpuart32 platform
>
> On Thu, 13 Apr 2023, Sherry Sun wrote:
>
> > For lpuart32 platforms, UARTMODIR register is used instead of
> UARTMODEM.
> > So here should configure the corresponding UARTMODIR register bits.
> >
> > Fixes: 67b01837861c ("tty: serial: lpuart: Add RS485 support for
> > 32-bit uart flavour")
>
> The patch is good but I don't think Fixes tag is warranted here because
> TXRTSPOL and TXRTSE bits are the same for both registers. ...So this is mostly
> to avoid reader confusion rather than fix an actual problem.
>
> Reviewed-by: Ilpo Järvinen <[email protected]>

Sure, will remove the fix tag, thanks.

Best Regards
Sherry

>
> --
> i.
>
> > Signed-off-by: Sherry Sun <[email protected]>
> > ---
> > drivers/tty/serial/fsl_lpuart.c | 8 ++++----
> > 1 file changed, 4 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/tty/serial/fsl_lpuart.c
> > b/drivers/tty/serial/fsl_lpuart.c index 074bfed57fc9..9845d3f5b84b
> > 100644
> > --- a/drivers/tty/serial/fsl_lpuart.c
> > +++ b/drivers/tty/serial/fsl_lpuart.c
> > @@ -1406,12 +1406,12 @@ static int lpuart32_config_rs485(struct
> uart_port *port, struct ktermios *termio
> > struct lpuart_port, port);
> >
> > unsigned long modem = lpuart32_read(&sport->port, UARTMODIR)
> > - & ~(UARTMODEM_TXRTSPOL |
> UARTMODEM_TXRTSE);
> > + & ~(UARTMODIR_TXRTSPOL |
> UARTMODIR_TXRTSE);
> > lpuart32_write(&sport->port, modem, UARTMODIR);
> >
> > if (rs485->flags & SER_RS485_ENABLED) {
> > /* Enable auto RS-485 RTS mode */
> > - modem |= UARTMODEM_TXRTSE;
> > + modem |= UARTMODIR_TXRTSE;
> >
> > /*
> > * The hardware defaults to RTS logic HIGH while transfer.
> > @@ -1420,9 +1420,9 @@ static int lpuart32_config_rs485(struct uart_port
> *port, struct ktermios *termio
> > * Note: UART is assumed to be active high.
> > */
> > if (rs485->flags & SER_RS485_RTS_ON_SEND)
> > - modem |= UARTMODEM_TXRTSPOL;
> > + modem |= UARTMODIR_TXRTSPOL;
> > else if (rs485->flags & SER_RS485_RTS_AFTER_SEND)
> > - modem &= ~UARTMODEM_TXRTSPOL;
> > + modem &= ~UARTMODIR_TXRTSPOL;
> > }
> >
> > lpuart32_write(&sport->port, modem, UARTMODIR);
> >