serial: set rts logic level on sending or after send

This commit is contained in:
2024-04-25 03:07:35 +08:00
parent 9af38bc3bf
commit ffa44e2dee

View File

@ -2390,9 +2390,14 @@ uart_configure_port(struct uart_driver *drv, struct uart_state *state,
*/
spin_lock_irqsave(&port->lock, flags);
port->mctrl &= TIOCM_DTR;
if (port->rs485.flags & SER_RS485_ENABLED &&
!(port->rs485.flags & SER_RS485_RTS_AFTER_SEND))
port->mctrl |= TIOCM_RTS;
if (port->rs485.flags & SER_RS485_ENABLED){
if (port->rs485.flags & SER_RS485_RTS_ON_SEND)
port->mctrl &= ~TIOCM_RTS;
else
port->mctrl |= TIOCM_RTS;
}
port->ops->set_mctrl(port, port->mctrl);
spin_unlock_irqrestore(&port->lock, flags);