summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Kochetkov <[email protected]>2025-08-13 08:54:32 +0300
committerTom Rini <[email protected]>2025-08-21 10:02:43 -0600
commite4507f4a0a7ac3b5346934df19c2daed626cc404 (patch)
tree279624de94358c4b7c6dd24c248af70b460f3d8e
parent2b751d42c35c36f7e3739d7bc7064f014e1263c7 (diff)
serial-uclass: set GD_FLG_SERIAL_READY only when cur_serial_dev is assigned
serial_find_console_or_panic() may left cur_serial_dev unassigned if REQUIRE_SERIAL_CONSOLE is not set. Setting GD_FLG_SERIAL_READY in this situation confuses serial console code. It tries to use unassigned driver instead of debug port and stops printing. So check cur_serial_dev before setting GD_FLG_SERIAL_READY to allow console to keep printing via debug port. Signed-off-by: Maxim Kochetkov <[email protected]>
-rw-r--r--drivers/serial/serial-uclass.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/serial/serial-uclass.c b/drivers/serial/serial-uclass.c
index a08678dde4e..7b381ca12a0 100644
--- a/drivers/serial/serial-uclass.c
+++ b/drivers/serial/serial-uclass.c
@@ -191,7 +191,8 @@ int serial_init(void)
{
#if CONFIG_IS_ENABLED(SERIAL_PRESENT)
serial_find_console_or_panic();
- gd->flags |= GD_FLG_SERIAL_READY;
+ if (gd->cur_serial_dev)
+ gd->flags |= GD_FLG_SERIAL_READY;
if (IS_ENABLED(CONFIG_OF_SERIAL_BAUD)) {
int ret = 0;