From 43e0a3dec0a86a4e1a164f0b3839b6f1435c6685 Mon Sep 17 00:00:00 2001 From: Chris Packham Date: Fri, 23 Sep 2016 15:59:43 +1200 Subject: common/console.c: ensure GD_FLG_SILENT is set or cleared When CONFIG_SILENT_CONSOLE is defined and the default environment has silent=1 it is not possible for a user to make the console un-silent if the environment is not available when console_init_f() is called (for example because the environment is in SPI). Add a new helper function console_update_silent() and call it from both console_init_f() and console_init_r(). Signed-off-by: Chris Packham Reviewed-by: Simon Glass --- common/console.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'common') diff --git a/common/console.c b/common/console.c index 12293f3836..c7f3243431 100644 --- a/common/console.c +++ b/common/console.c @@ -687,15 +687,22 @@ int console_assign(int file, const char *devname) return -1; } -/* Called before relocation - use serial functions */ -int console_init_f(void) +static void console_update_silent(void) { - gd->have_console = 1; - #ifdef CONFIG_SILENT_CONSOLE if (getenv("silent") != NULL) gd->flags |= GD_FLG_SILENT; + else + gd->flags &= ~GD_FLG_SILENT; #endif +} + +/* Called before relocation - use serial functions */ +int console_init_f(void) +{ + gd->have_console = 1; + + console_update_silent(); print_pre_console_buffer(PRE_CONSOLE_FLUSHPOINT1_SERIAL); @@ -831,6 +838,8 @@ int console_init_r(void) struct list_head *pos; struct stdio_dev *dev; + console_update_silent(); + #ifdef CONFIG_SPLASH_SCREEN /* * suppress all output if splash screen is enabled and we have -- cgit v1.2.3