[PATCH -next 02/12] serial: earlycon: Emit earlycon name in the OF table

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The OF device name of the earlycon is never used because there is no
device; re-purpose the name field to store the earlycon name in
the OF earlycon table. Earlycon will use the table entry to
fixup the console name and index.

Signed-off-by: Peter Hurley <peter@xxxxxxxxxxxxxxxxxx>
---
 include/linux/serial_core.h | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h
index 8aeec49..c523785 100644
--- a/include/linux/serial_core.h
+++ b/include/linux/serial_core.h
@@ -29,6 +29,7 @@
 #include <linux/tty.h>
 #include <linux/mutex.h>
 #include <linux/sysrq.h>
+#include <linux/mod_devicetable.h>
 #include <uapi/linux/serial_core.h>
 
 #ifdef CONFIG_SERIAL_CORE_CONSOLE
@@ -353,8 +354,18 @@ extern int of_setup_earlycon(unsigned long addr,
 		 = { .name  = __stringify(_name),			\
 		     .setup = func  }
 
-#define OF_EARLYCON_DECLARE(name, compat, fn)				\
-	_OF_DECLARE(earlycon, name, compat, fn, void *)
+#ifdef CONFIG_OF
+#define EARLYCON_OF_TABLE_ATTR __used __section(__earlycon_of_table)
+#else
+#define EARLYCON_OF_TABLE_ATTR __attribute__((unused))
+#endif
+
+#define OF_EARLYCON_DECLARE(_name, compat, fn)				\
+	static const struct of_device_id __of_table_##_name		\
+		EARLYCON_OF_TABLE_ATTR					\
+		 = { .name = __stringify(_name),			\
+		     .compatible = compat,				\
+		     .data = (fn == (void *)NULL) ? fn : fn  }
 
 struct uart_port *uart_get_console(struct uart_port *ports, int nr,
 				   struct console *c);
-- 
2.3.1

--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux