diff options
author | Chris Packham | 2016-09-23 15:59:43 +1200 |
---|---|---|
committer | Tom Rini | 2016-10-07 14:26:29 +0000 |
commit | 43e0a3dec0a86a4e1a164f0b3839b6f1435c6685 (patch) | |
tree | 8c6a2ba44601b7682e14f6ab5c08897c1ad23a6b /common | |
parent | 234600c1ca9fca800c8b41710cfc4fb7a30d887c (diff) |
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 <judge.packham@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'common')
-rw-r--r-- | common/console.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/common/console.c b/common/console.c index 12293f38362..c7f32434310 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 |