lkml.org 
[lkml]   [2018]   [Jun]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3/4] serial: 8250: Make em485_rts_after_send() set mctrl according to rts state.
    Date
    When rs485 enabled and RTS_AFTER_SEND set on startup, need to preserve
    mctrl status, because later functions will call set_mctrl passing
    port->mctrl=0 overriding rts status, resulting in rts pin in
    transmission when idle.

    Make mctrl reflect rts pin state.

    Signed-off-by: Giulio Benetti <giulio.benetti@micronovasrl.com>
    ---
    drivers/tty/serial/8250/8250_port.c | 7 +++++--
    1 file changed, 5 insertions(+), 2 deletions(-)

    diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c
    index 95833cbc4338..c8c10b5ec6d6 100644
    --- a/drivers/tty/serial/8250/8250_port.c
    +++ b/drivers/tty/serial/8250/8250_port.c
    @@ -562,10 +562,13 @@ static inline void serial8250_em485_rts_after_send(struct uart_8250_port *p)
    {
    unsigned char mcr = serial8250_in_MCR(p);

    - if (p->port.rs485.flags & SER_RS485_RTS_AFTER_SEND)
    + if (p->port.rs485.flags & SER_RS485_RTS_AFTER_SEND) {
    mcr |= UART_MCR_RTS;
    - else
    + p->port.mctrl |= TIOCM_RTS;
    + } else {
    mcr &= ~UART_MCR_RTS;
    + p->port.mctrl &= ~TIOCM_RTS;
    + }
    serial8250_out_MCR(p, mcr);
    }

    --
    2.17.1
    \
     
     \ /
      Last update: 2018-06-06 11:51    [W:4.313 / U:0.280 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site