• R
    SERIAL: omap: fix hardware assisted flow control · 3af08bd7
    Russell King 提交于
    When the UART device has hardware flow control enabled, it ignores the
    MCR RTS bit in the MCR register, and keeps RTS asserted as long as we
    continue to read characters from the UART receiver FIFO.  This means
    that when the TTY buffers become full, the UART doesn't tell the remote
    end to stop sending, which causes the TTY layer to start dropping
    characters.
    
    A similar problem exists with software flow control.  We need the FIFO
    register to fill when software flow control is enabled to provoke the
    UART to send the XOFF character.
    
    Fix this by implementing the throttle/unthrottle callbacks, and use
    these to disable receiver interrupts.  This in turn means that the UART
    FIFO will fill, which will then cause the UART's hardware to deassert
    the RTS signal and/or send the XOFF character, stopping the remote end.
    Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
    3af08bd7
omap-serial.c 42.1 KB