• Huang Shijie's avatar
    serial: mxs-auart: fix the wrong RTS hardware flow control · 00592021
    Huang Shijie authored
    Without checking if the auart supports the hardware flow control or not,
    the old mxs_auart_set_mctrl() asserted the RTS pin blindly.
    
    This will causes the auart receives wrong data in the following case:
       The far-end has already started the write operation, and wait for
    the auart asserts the RTS pin. Then the auart starts the read operation,
    but mxs_auart_set_mctrl() may be called before we set the RTSCTS in the
    mxs_auart_settermios(). So the RTS pin is asserted in a wrong situation,
    and we get the wrong data in the end.
    
    This bug has been catched when I connect the mx23(DTE) to the mx53(DCE).
    
    This patch also replaces the AUART_CTRL2_RTS with AUART_CTRL2_RTSEN.
    We should use the real the hardware flow control, not the software-controled
    hardware flow control.
    Signed-off-by: default avatarHuang Shijie <b32955@freescale.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    00592021
mxs-auart.c 19.5 KB