From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ryan CHEN Date: Wed, 20 Aug 2008 12:58:10 -0400 Subject: [U-Boot] [PATCH] Add background serial print and correct search_device function Message-ID: <1219251490-26134-1-git-send-email-ryan.chen@st.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de The patch introduces a new macro 'CFG_BG_CONSOLE_SERIAL'. It means print messages through serial port although current console isn't serial port. It is important for debugging and looks like multi-consoles in Linux but without input. Another modification in the patch is that verify if search_device function found device. If found, return dev. Otherwise, return NULL. Signed-off-by: Ryan Chen --- common/console.c | 13 +++++++++++++ 1 files changed, 13 insertions(+), 0 deletions(-) diff --git a/common/console.c b/common/console.c index 1b095b1..c60baef 100644 --- a/common/console.c +++ b/common/console.c @@ -132,12 +132,20 @@ void fputc (int file, const char c) { if (file < MAX_FILES) stdio_devices[file]->putc (c); +#ifdef CFG_BG_CONSOLE_SERIAL + if((unsigned int)stdio_devices[file]->putc != (unsigned int)serial_putc) + serial_putc (c); +#endif/*CFG_BG_CONSOLE_SERIAL*/ } void fputs (int file, const char *s) { if (file < MAX_FILES) stdio_devices[file]->puts (s); +#ifdef CFG_BG_CONSOLE_SERIAL + if((unsigned int)stdio_devices[file]->puts != (unsigned int)serial_puts) + serial_puts(s); +#endif/*CFG_BG_CONSOLE_SERIAL*/ } void fprintf (int file, const char *fmt, ...) @@ -377,6 +385,7 @@ device_t *search_device (int flags, char *name) { int i, items; device_t *dev = NULL; + int found_flag = 0; items = ListNumItems (devlist); if (name == NULL) @@ -385,9 +394,13 @@ device_t *search_device (int flags, char *name) for (i = 1; i <= items; i++) { dev = ListGetPtrToItem (devlist, i); if ((dev->flags & flags) && (strcmp (name, dev->name) == 0)) { + found_flag = 1; break; } } + + if(!found_flag) + return NULL; return dev; } #endif /* CFG_CONSOLE_IS_IN_ENV || CONFIG_SPLASH_SCREEN */ -- 1.6.0.rc1