fiq debugger: add resume for debug uart
authorHuibin Hong <huibin.hong@rock-chips.com>
Wed, 22 Jun 2016 10:21:29 +0000 (18:21 +0800)
committerHuang, Tao <huangtao@rock-chips.com>
Wed, 22 Jun 2016 11:11:43 +0000 (19:11 +0800)
The uart power domain is off after suspend, which makes
uart registers reseted. So, when resume, uart driver gets
wrong registers value, and enters endless loop.

Change-Id: I90eb805d85cc27486e94949b9a84c4f8a12430b7
Signed-off-by: Huibin Hong <huibin.hong@rock-chips.com>
drivers/soc/rockchip/rk_fiq_debugger.c

index e085e4527e42973e88253fb4494de4c97a989081..61a4ab600c633d6bdb0775ea75e536ba4b1ddbad 100755 (executable)
@@ -177,6 +177,12 @@ static void debug_flush(struct platform_device *pdev)
                cpu_relax();
 }
 
+static int uart_dev_resume(struct platform_device *pdev)
+{
+       debug_port_init(pdev);
+       return 0;
+}
+
 #ifdef CONFIG_RK_CONSOLE_THREAD
 #define FIFO_SIZE SZ_64K
 static DEFINE_KFIFO(fifo, unsigned char, FIFO_SIZE);
@@ -321,6 +327,7 @@ void rk_serial_debug_init(void __iomem *base, int irq, int signal_irq,
        t->pdata.uart_init = debug_port_init;
        t->pdata.uart_getc = debug_getc;
        t->pdata.uart_putc = debug_putc;
+       t->pdata.uart_dev_resume = uart_dev_resume;
 #ifndef CONFIG_RK_CONSOLE_THREAD
        t->pdata.uart_flush = debug_flush;
 #endif