From 76bc7af016b6b868124f7a28a8c7f39a3e2b3d09 Mon Sep 17 00:00:00 2001 From: Tao Huang Date: Wed, 18 Mar 2020 10:52:31 +0800 Subject: [PATCH] soc: rockchip: rk_fiq_debugger: lock console in debug_port_init() debug_port_init() may called when earlycon is used, which may block kernel init. Use console_lock()/console_unlock() to avoid the race. Change-Id: I711c038f31141cb5225624e2a9d746bd4de232e4 Signed-off-by: Tao Huang --- drivers/soc/rockchip/rk_fiq_debugger.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/soc/rockchip/rk_fiq_debugger.c b/drivers/soc/rockchip/rk_fiq_debugger.c index f1ceb2b55964..5f0b2891660d 100755 --- a/drivers/soc/rockchip/rk_fiq_debugger.c +++ b/drivers/soc/rockchip/rk_fiq_debugger.c @@ -40,6 +40,7 @@ #include #include #include +#include #ifdef CONFIG_FIQ_DEBUGGER_TRUST_ZONE #include @@ -99,6 +100,8 @@ static int debug_port_init(struct platform_device *pdev) int dll = 0, dlm = 0; struct rk_fiq_debugger *t; + console_lock(); + t = container_of(dev_get_platdata(&pdev->dev), typeof(*t), pdata); if (rk_fiq_read(t, UART_LSR) & UART_LSR_DR) @@ -140,6 +143,8 @@ static int debug_port_init(struct platform_device *pdev) /* disbale loop back mode */ rk_fiq_write(t, 0x0, UART_MCR); + console_unlock(); + return 0; }