From c8d875c9c692ca1cfae90dac530258be0f5217eb Mon Sep 17 00:00:00 2001 From: Huibin Hong Date: Tue, 19 Dec 2017 16:05:54 +0800 Subject: [PATCH] rk_fiq_debugger: disable RLSI interrupt RDI interrupt is enough, disable RLSI, which can also reduce the risk of continuous interrupt. Change-Id: I1946813034cb895e550c5f5ab2aa9647256dda9c Signed-off-by: Huibin Hong --- drivers/soc/rockchip/rk_fiq_debugger.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/drivers/soc/rockchip/rk_fiq_debugger.c b/drivers/soc/rockchip/rk_fiq_debugger.c index 09c4db479a68..165626c449fa 100755 --- a/drivers/soc/rockchip/rk_fiq_debugger.c +++ b/drivers/soc/rockchip/rk_fiq_debugger.c @@ -125,8 +125,8 @@ static int debug_port_init(struct platform_device *pdev) rk_fiq_write(t, dlm, UART_DLM); rk_fiq_write(t, 0x03, UART_LCR); - /* enable rx and lsr interrupt */ - rk_fiq_write(t, UART_IER_RLSI | UART_IER_RDI, UART_IER); + /* enable rx interrupt */ + rk_fiq_write(t, UART_IER_RDI, UART_IER); /* * Interrupt on every character when received, but we can enable fifo for TX @@ -152,14 +152,12 @@ static int debug_getc(struct platform_device *pdev) static char buf[32]; t = container_of(dev_get_platdata(&pdev->dev), typeof(*t), pdata); - + /* + * Clear uart interrupt status + */ + rk_fiq_read(t, UART_USR); lsr = rk_fiq_read_lsr(t); - if (lsr & UART_LSR_BI || t->break_seen) { - t->break_seen = false; - return FIQ_DEBUGGER_NO_CHAR; - } - if (lsr & UART_LSR_DR) { temp = rk_fiq_read(t, UART_RX); buf[n & 0x1f] = temp;