• Peter Hurley's avatar
    serial: omap_8250: Fix RTS handling · 4bf4ea9d
    Peter Hurley authored
    The OMAP3 UART ignores MCR[1] (ie., UART_MCR_RTS) when in autoRTS
    mode (UPF_HARD_FLOW + CRTSCTS). This makes it impossible for either
    the serial core or userspace to manually flow control the sender.
    
    Disable autoRTS mode when RTS is lowered and restore the previous
    mode when RTS is raised.
    
    Note that the OMAP3 UART provides no mechanism for switching from
    autoRTS mode without corrupting incoming data; to access the
    necessary register, the line control settings must be set to 8-e-2
    and thus any data received during that time will be interpreted with
    those settings. This corruption has been observed in practice.
    
    Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Signed-off-by: default avatarPeter Hurley <peter@hurleysoftware.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    4bf4ea9d
8250_omap.c 34.1 KB