ping? On Mon, Nov 6, 2017 at 11:49 AM, Ricardo Ribalda Delgado <ricardo.ribalda@xxxxxxxxx> wrote: > Hardware does not support having the same RTS level during RX and TX > when RS485 mode is on (URA in Fintek terminology). > > The manufacturer has also confirmed that the delays are not enabled if > the RS485 mode is not enabled. > > Therefore we should return -EINVAL if the user wants to have the same > value for RTS_ON_SEND and RTS_AFTER_SEND. > > Cc: "Ji-Ze Hong (Peter Hong)" <hpeter@xxxxxxxxx> > Cc: Lukas Wunner <lukas@xxxxxxxxx> > Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@xxxxxxxxx> > --- > drivers/tty/serial/8250/8250_fintek.c | 17 +++++++++-------- > 1 file changed, 9 insertions(+), 8 deletions(-) > > diff --git a/drivers/tty/serial/8250/8250_fintek.c b/drivers/tty/serial/8250/8250_fintek.c > index c41cbb52f1fe..ca7e96f9f080 100644 > --- a/drivers/tty/serial/8250/8250_fintek.c > +++ b/drivers/tty/serial/8250/8250_fintek.c > @@ -201,10 +201,17 @@ static int fintek_8250_rs485_config(struct uart_port *port, > if (!pdata) > return -EINVAL; > > - if (rs485->flags & SER_RS485_ENABLED) > + /* Hardware do not support same RTS level on send and receive */ > + if (!(rs485->flags & SER_RS485_RTS_ON_SEND) == > + !(rs485->flags & SER_RS485_RTS_AFTER_SEND)) > + return -EINVAL; > + > + if (rs485->flags & SER_RS485_ENABLED) { > memset(rs485->padding, 0, sizeof(rs485->padding)); > - else > + config |= RS485_URA; > + } else { > memset(rs485, 0, sizeof(*rs485)); > + } > > rs485->flags &= SER_RS485_ENABLED | SER_RS485_RTS_ON_SEND | > SER_RS485_RTS_AFTER_SEND; > @@ -219,12 +226,6 @@ static int fintek_8250_rs485_config(struct uart_port *port, > config |= RXW4C_IRA; > } > > - if ((!!(rs485->flags & SER_RS485_RTS_ON_SEND)) == > - (!!(rs485->flags & SER_RS485_RTS_AFTER_SEND))) > - rs485->flags &= ~SER_RS485_ENABLED; > - else > - config |= RS485_URA; > - > if (rs485->flags & SER_RS485_RTS_ON_SEND) > config |= RTS_INVERT; > > -- > 2.14.2 > -- Ricardo Ribalda -- To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html