Message ID | 20220622154659.8710-7-LinoSanfilippo@gmx.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Fixes and cleanup for RS485 | expand |
On Wed, 22 Jun 2022, Lino Sanfilippo wrote: > From: Lino Sanfilippo <l.sanfilippo@kunbus.com> > > Before the drivers rs485_config() function is called the serial core > already ensures that only one of both options RTS on send or RTS after send > is set. So remove the concerning sanity check in the driver function to > avoid redundancy. > > Signed-off-by: Lino Sanfilippo <l.sanfilippo@kunbus.com> > --- > drivers/tty/serial/8250/8250_dwlib.c | 10 ++-------- > 1 file changed, 2 insertions(+), 8 deletions(-) > > diff --git a/drivers/tty/serial/8250/8250_dwlib.c b/drivers/tty/serial/8250/8250_dwlib.c > index c83e7eaf3877..bed2bd6b7a01 100644 > --- a/drivers/tty/serial/8250/8250_dwlib.c > +++ b/drivers/tty/serial/8250/8250_dwlib.c > @@ -95,16 +95,10 @@ static int dw8250_rs485_config(struct uart_port *p, struct serial_rs485 *rs485) > if (rs485->flags & SER_RS485_ENABLED) { > tcr |= DW_UART_TCR_RS485_EN; > > - if (rs485->flags & SER_RS485_RX_DURING_TX) { > + if (rs485->flags & SER_RS485_RX_DURING_TX) > tcr |= DW_UART_TCR_XFER_MODE_DE_DURING_RE; > - } else { > - /* HW does not support same DE level for tx and rx */ > - if (!(rs485->flags & SER_RS485_RTS_ON_SEND) == > - !(rs485->flags & SER_RS485_RTS_AFTER_SEND)) > - return -EINVAL; > - > + else > tcr |= DW_UART_TCR_XFER_MODE_DE_OR_RE; > - } > dw8250_writel_ext(p, DW_UART_DE_EN, 1); > dw8250_writel_ext(p, DW_UART_RE_EN, 1); > } else { > -- Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
diff --git a/drivers/tty/serial/8250/8250_dwlib.c b/drivers/tty/serial/8250/8250_dwlib.c index c83e7eaf3877..bed2bd6b7a01 100644 --- a/drivers/tty/serial/8250/8250_dwlib.c +++ b/drivers/tty/serial/8250/8250_dwlib.c @@ -95,16 +95,10 @@ static int dw8250_rs485_config(struct uart_port *p, struct serial_rs485 *rs485) if (rs485->flags & SER_RS485_ENABLED) { tcr |= DW_UART_TCR_RS485_EN; - if (rs485->flags & SER_RS485_RX_DURING_TX) { + if (rs485->flags & SER_RS485_RX_DURING_TX) tcr |= DW_UART_TCR_XFER_MODE_DE_DURING_RE; - } else { - /* HW does not support same DE level for tx and rx */ - if (!(rs485->flags & SER_RS485_RTS_ON_SEND) == - !(rs485->flags & SER_RS485_RTS_AFTER_SEND)) - return -EINVAL; - + else tcr |= DW_UART_TCR_XFER_MODE_DE_OR_RE; - } dw8250_writel_ext(p, DW_UART_DE_EN, 1); dw8250_writel_ext(p, DW_UART_RE_EN, 1); } else {