public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 1/2] serial: Remove the "serial" console device
@ 2012-11-01 21:46 Joe Hershberger
  2012-11-01 21:46 ` [U-Boot] [PATCH 2/2] serial: Make nulldev a serial device Joe Hershberger
  2012-11-03  1:35 ` [U-Boot] [PATCH 1/2] serial: Remove the "serial" console device Marek Vasut
  0 siblings, 2 replies; 14+ messages in thread
From: Joe Hershberger @ 2012-11-01 21:46 UTC (permalink / raw)
  To: u-boot

Each serial device is added as a console device.  There was also the
"serial" device that points to the most-recently-assigned-to-some-
console-handle device.  This can be confusing.  Instead, only show the
actual serial devices.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
---
 common/console.c | 37 +++++++++++++++++++------------------
 common/stdio.c   | 12 +-----------
 2 files changed, 20 insertions(+), 29 deletions(-)

diff --git a/common/console.c b/common/console.c
index 1177f7d..9cc8197 100644
--- a/common/console.c
+++ b/common/console.c
@@ -26,6 +26,7 @@
 #include <malloc.h>
 #include <stdio_dev.h>
 #include <exports.h>
+#include <serial.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -550,6 +551,7 @@ int console_assign(int file, const char *devname)
 {
 	int flag;
 	struct stdio_dev *dev;
+	const char *realdevname;
 
 	/* Check for valid file */
 	switch (file) {
@@ -565,8 +567,12 @@ int console_assign(int file, const char *devname)
 	}
 
 	/* Check for valid device name */
+	if (strcmp(devname, "serial") == 0)
+		realdevname = default_serial_console()->name;
+	else
+		realdevname = devname;
 
-	dev = search_device(flag, devname);
+	dev = search_device(flag, realdevname);
 
 	if (dev)
 		return console_setfile(file, dev);
@@ -657,13 +663,16 @@ int console_init_r(void)
 	}
 	/* if the devices are overwritten or not found, use default device */
 	if (inputdev == NULL) {
-		inputdev  = search_device(DEV_FLAGS_INPUT,  "serial");
+		inputdev  = search_device(DEV_FLAGS_INPUT,
+			default_serial_console()->name);
 	}
 	if (outputdev == NULL) {
-		outputdev = search_device(DEV_FLAGS_OUTPUT, "serial");
+		outputdev = search_device(DEV_FLAGS_OUTPUT,
+			default_serial_console()->name);
 	}
 	if (errdev == NULL) {
-		errdev    = search_device(DEV_FLAGS_OUTPUT, "serial");
+		errdev = search_device(DEV_FLAGS_OUTPUT,
+			default_serial_console()->name);
 	}
 	/* Initializes output console first */
 	if (outputdev != NULL) {
@@ -713,18 +722,10 @@ int console_init_r(void)
 	struct list_head *pos;
 	struct stdio_dev *dev;
 
-#ifdef CONFIG_SPLASH_SCREEN
-	/*
-	 * suppress all output if splash screen is enabled and we have
-	 * a bmp to display. We redirect the output from frame buffer
-	 * console to serial console in this case or suppress it if
-	 * "silent" mode was requested.
-	 */
-	if (getenv("splashimage") != NULL) {
-		if (!(gd->flags & GD_FLG_SILENT))
-			outputdev = search_device (DEV_FLAGS_OUTPUT, "serial");
-	}
-#endif
+	outputdev = search_device(DEV_FLAGS_OUTPUT,
+		default_serial_console()->name);
+	inputdev = search_device(DEV_FLAGS_INPUT,
+		default_serial_console()->name);
 
 	/* Scan devices looking for input and output devices */
 	list_for_each(pos, list) {
@@ -760,13 +761,13 @@ int console_init_r(void)
 
 	gd->flags |= GD_FLG_DEVINIT;	/* device initialization completed */
 
-	stdio_print_current_devices();
-
 	/* Setting environment variables */
 	for (i = 0; i < 3; i++) {
 		setenv(stdio_names[i], stdio_devices[i]->name);
 	}
 
+	stdio_print_current_devices();
+
 #if 0
 	/* If nothing usable installed, use only the initial console */
 	if ((stdio_devices[stdin] == NULL) && (stdio_devices[stdout] == NULL))
diff --git a/common/stdio.c b/common/stdio.c
index 605ff3f..e9bdc0e 100644
--- a/common/stdio.c
+++ b/common/stdio.c
@@ -70,21 +70,11 @@ int nulldev_input(void)
 
 static void drv_system_init (void)
 {
+#ifdef CONFIG_SYS_DEVICE_NULLDEV
 	struct stdio_dev dev;
 
 	memset (&dev, 0, sizeof (dev));
 
-	strcpy (dev.name, "serial");
-	dev.flags = DEV_FLAGS_OUTPUT | DEV_FLAGS_INPUT | DEV_FLAGS_SYSTEM;
-	dev.putc = serial_putc;
-	dev.puts = serial_puts;
-	dev.getc = serial_getc;
-	dev.tstc = serial_tstc;
-	stdio_register (&dev);
-
-#ifdef CONFIG_SYS_DEVICE_NULLDEV
-	memset (&dev, 0, sizeof (dev));
-
 	strcpy (dev.name, "nulldev");
 	dev.flags = DEV_FLAGS_OUTPUT | DEV_FLAGS_INPUT | DEV_FLAGS_SYSTEM;
 	dev.putc = nulldev_putc;
-- 
1.7.11.5

^ permalink raw reply related	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2012-11-06  1:11 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-01 21:46 [U-Boot] [PATCH 1/2] serial: Remove the "serial" console device Joe Hershberger
2012-11-01 21:46 ` [U-Boot] [PATCH 2/2] serial: Make nulldev a serial device Joe Hershberger
2012-11-03  1:37   ` Marek Vasut
2012-11-05  0:24     ` Joe Hershberger
2012-11-05 23:10       ` Marek Vasut
2012-11-06  0:01         ` Joe Hershberger
2012-11-06  0:47           ` Marek Vasut
2012-11-06  1:00             ` Joe Hershberger
2012-11-06  1:11               ` Marek Vasut
2012-11-03  1:35 ` [U-Boot] [PATCH 1/2] serial: Remove the "serial" console device Marek Vasut
2012-11-05  0:20   ` Joe Hershberger
2012-11-05 23:11     ` Marek Vasut
2012-11-05 23:45       ` Joe Hershberger
2012-11-05 23:55         ` Marek Vasut

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox