summaryrefslogtreecommitdiff
path: root/common/console.c
diff options
context:
space:
mode:
authorChris Packham <judge.packham@gmail.com>2016-09-23 15:59:43 +1200
committerTom Rini <trini@konsulko.com>2016-10-07 14:26:29 +0000
commit43e0a3dec0a86a4e1a164f0b3839b6f1435c6685 (patch)
tree8c6a2ba44601b7682e14f6ab5c08897c1ad23a6b /common/console.c
parent234600c1ca9fca800c8b41710cfc4fb7a30d887c (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/console.c')
-rw-r--r--common/console.c17
1 files changed, 13 insertions, 4 deletions
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