[PATCH v2] console: allow to specify the device id

Jean-Christophe PLAGNIOL-VILLARD plagnioj at jcrosoft.com
Mon Jan 12 22:11:49 PST 2015


so we can use dynamic number id with specific devname

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
---
v2:
add missing imx

Best Regards,
J.
 common/console.c              | 2 +-
 drivers/serial/serial_imx.c   | 4 +++-
 drivers/usb/gadget/u_serial.c | 1 +
 include/console.h             | 1 +
 net/netconsole.c              | 1 +
 5 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/common/console.c b/common/console.c
index c092621..0c32f06 100644
--- a/common/console.c
+++ b/common/console.c
@@ -194,7 +194,7 @@ int console_register(struct console_device *newcdev)
 		console_init_early();
 
 	if (newcdev->devname) {
-		dev->id = DEVICE_ID_SINGLE;
+		dev->id = newcdev->devid;
 		strcpy(dev->name, newcdev->devname);
 	} else {
 		dev->id = DEVICE_ID_DYNAMIC;
diff --git a/drivers/serial/serial_imx.c b/drivers/serial/serial_imx.c
index 21189cb..cd954c2 100644
--- a/drivers/serial/serial_imx.c
+++ b/drivers/serial/serial_imx.c
@@ -340,8 +340,10 @@ static int imx_serial_probe(struct device_d *dev)
 	cdev->linux_console_name = "ttymxc";
 	if (dev->device_node) {
 		devname = of_alias_get(dev->device_node);
-		if (devname)
+		if (devname) {
 			cdev->devname = xstrdup(devname);
+			cdev->devid = DEVICE_ID_SINGLE;
+		}
 	}
 
 	imx_serial_init_port(cdev);
diff --git a/drivers/usb/gadget/u_serial.c b/drivers/usb/gadget/u_serial.c
index 8c58746..1e5e809 100644
--- a/drivers/usb/gadget/u_serial.c
+++ b/drivers/usb/gadget/u_serial.c
@@ -530,6 +530,7 @@ int gserial_connect(struct gserial *gser, u8 port_num)
 	cdev->flush = serial_flush;
 	cdev->setbrg = serial_setbaudrate;
 	cdev->devname = "usbserial";
+	cdev->devid = DEVICE_ID_SINGLE;
 
 	status = console_register(cdev);
 	if (status)
diff --git a/include/console.h b/include/console.h
index beafb4d..72b4a44 100644
--- a/include/console.h
+++ b/include/console.h
@@ -47,6 +47,7 @@ struct console_device {
 	int (*set_active)(struct console_device *cdev, unsigned active);
 
 	char *devname;
+	int devid;
 
 	struct list_head list;
 
diff --git a/net/netconsole.c b/net/netconsole.c
index 99b9984..0ee6a76 100644
--- a/net/netconsole.c
+++ b/net/netconsole.c
@@ -154,6 +154,7 @@ static int netconsole_init(void)
 	cdev->putc = nc_putc;
 	cdev->getc = nc_getc;
 	cdev->devname = "netconsole";
+	cdev->devid = DEVICE_ID_SINGLE;
 	cdev->set_active = nc_set_active;
 
 	g_priv = priv;
-- 
2.1.3




More information about the barebox mailing list