[U-Boot] [PATCH 2/2] console: simplify puts()

Masahiro Yamada yamada.masahiro at socionext.com
Mon Jul 17 04:08:32 UTC 2017


Current puts() and putc() have similar #ifdef / if() conditionals.
Make puts() iterate over putc() to avoid code duplication.

Signed-off-by: Masahiro Yamada <yamada.masahiro at socionext.com>
---

 common/console.c | 44 ++------------------------------------------
 1 file changed, 2 insertions(+), 42 deletions(-)

diff --git a/common/console.c b/common/console.c
index c6156f33bbbe..01eef5594fcb 100644
--- a/common/console.c
+++ b/common/console.c
@@ -426,12 +426,6 @@ static void pre_console_putc(const char c)
 	unmap_sysmem(buffer);
 }
 
-static void pre_console_puts(const char *s)
-{
-	while (*s)
-		pre_console_putc(*s++);
-}
-
 static void print_pre_console_buffer(int flushpoint)
 {
 	unsigned long in = 0, out = 0;
@@ -459,7 +453,6 @@ static void print_pre_console_buffer(int flushpoint)
 }
 #else
 static inline void pre_console_putc(const char c) {}
-static inline void pre_console_puts(const char *s) {}
 static inline void print_pre_console_buffer(int flushpoint) {}
 #endif
 
@@ -501,41 +494,8 @@ void putc(const char c)
 
 void puts(const char *s)
 {
-#ifdef CONFIG_DEBUG_UART
-	if (!gd || !(gd->flags & GD_FLG_SERIAL_READY)) {
-		while (*s) {
-			int ch = *s++;
-
-			printch(ch);
-		}
-		return;
-	}
-#endif
-#ifdef CONFIG_CONSOLE_RECORD
-	if (gd && (gd->flags & GD_FLG_RECORD) && gd->console_out.start)
-		membuff_put(&gd->console_out, s, strlen(s));
-#endif
-#ifdef CONFIG_SILENT_CONSOLE
-	if (gd->flags & GD_FLG_SILENT)
-		return;
-#endif
-
-#ifdef CONFIG_DISABLE_CONSOLE
-	if (gd->flags & GD_FLG_DISABLE_CONSOLE)
-		return;
-#endif
-
-	if (!gd->have_console)
-		return pre_console_puts(s);
-
-	if (gd->flags & GD_FLG_DEVINIT) {
-		/* Send to the standard output */
-		fputs(stdout, s);
-	} else {
-		/* Send directly to the handler */
-		pre_console_puts(s);
-		serial_puts(s);
-	}
+	while (*s)
+		putc(*s++);
 }
 
 #ifdef CONFIG_CONSOLE_RECORD
-- 
2.7.4



More information about the U-Boot mailing list