• Shreshtha Kumar Sahu's avatar
    amba pl011: workaround for uart registers lockup · c16d51a3
    Shreshtha Kumar Sahu authored
    This workaround aims to break the deadlock situation
    which raises during continuous transfer of data for long
    duration over uart with hardware flow control. It is
    observed that CTS interrupt cannot be cleared in uart
    interrupt register (ICR). Hence further transfer over
    uart gets blocked.
    
    It is seen that during such deadlock condition ICR
    don't get cleared even on multiple write. This leads
    pass_counter to decrease and finally reach zero. This
    can be taken as trigger point to run this UART_BT_WA.
    
    Workaround backups the register configuration, does soft
    reset of UART using BIT-0 of PRCC_K_SOFTRST_SET/CLEAR
    registers and restores the registers.
    
    This patch also provides support for uart init and exit
    function calls if present.
    Signed-off-by: default avatarShreshtha Kumar Sahu <shreshthakumar.sahu@stericsson.com>
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    c16d51a3
amba-pl011.c 50.4 KB