Skip to contentSkip to conversation

tty: Use of_node_name_{eq,prefix} for node name comparisons

PATCH In review Rob Herring 3 participants 3 messages Dec 5, 2018 – Dec 6, 2018

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 tty: Use of_node_name_{eq,prefix} for node name comparisons

Convert string compares of DT node names to use of_node_name_eq helper instead. This removes direct access to the node name pointer.

For hvc, the code can also be simplified by using of_stdout pointer instead of searching again for the stdout node.

Cc Benjamin Herrenschmidt <[email protected]>
Cc Paul Mackerras <[email protected]>
Cc Michael Ellerman <[email protected]>
Cc Greg Kroah-Hartman <[email protected]>
Cc Jiri Slaby <[email protected]>
Cc "David S. Miller" <[email protected]>
---
 drivers/tty/hvc/hvc_opal.c      |  2 +-
 drivers/tty/hvc/hvc_vio.c       | 11 +----------
 drivers/tty/serial/pmac_zilog.c |  4 ++--
 drivers/tty/serial/suncore.c    |  8 ++++----
 drivers/tty/serial/sunsu.c      |  4 ++--
 5 files changed, 10 insertions(+), 19 deletions(-)
drivers/tty/hvc/hvc_opal.c +1 -1
index 77baf895108f..c66412566efc 100644
@@ -353,7 +353,7 @@ void __init hvc_opal_init_early(void)
 		if (!opal)
 			return;
 		for_each_child_of_node(opal, np) {
-			if (!strcmp(np->name, "serial")) {
+			if (of_node_name_eq(np, "serial")) {
 				stdout_node = np;
 				break;
 			}
drivers/tty/hvc/hvc_vio.c +1 -10
index 59eaa620bf13..6de6d4a1a221 100644
@@ -371,20 +371,11 @@ device_initcall(hvc_vio_init); /* after drivers/tty/hvc/hvc_console.c */
 void __init hvc_vio_init_early(void)
 {
 	const __be32 *termno;
-	const char *name;
 	const struct hv_ops *ops;
 
 	/* find the boot console from /chosen/stdout */
-	if (!of_stdout)
-		return;
-	name = of_get_property(of_stdout, "name", NULL);
-	if (!name) {
-		printk(KERN_WARNING "stdout node missing 'name' property!\n");
-		return;
-	}
-
 	/* Check if it's a virtual terminal */
-	if (strncmp(name, "vty", 3) != 0)
+	if (!of_node_name_prefix(of_stdout, "vty"))
 		return;
 	termno = of_get_property(of_stdout, "reg", NULL);
 	if (termno == NULL)
drivers/tty/serial/pmac_zilog.c +2 -2
index a9d40988e1c8..bcb5bf70534e 100644
@@ -1648,9 +1648,9 @@ static int __init pmz_probe(void)
 		 */
 		node_a = node_b = NULL;
 		for (np = NULL; (np = of_get_next_child(node_p, np)) != NULL;) {
-			if (strncmp(np->name, "ch-a", 4) == 0)
+			if (of_node_name_prefix(np, "ch-a"))
 				node_a = of_node_get(np);
-			else if (strncmp(np->name, "ch-b", 4) == 0)
+			else if (of_node_name_prefix(np, "ch-b"))
 				node_b = of_node_get(np);
 		}
 		if (!node_a && !node_b) {
drivers/tty/serial/suncore.c +4 -4
index 70a4ea4eaa6e..661e8b151366 100644
@@ -89,14 +89,14 @@ void sunserial_console_termios(struct console *con, struct device_node *uart_dp)
 	int baud, bits, stop, cflag;
 	char parity;
 
-	if (!strcmp(uart_dp->name, "rsc") ||
-	    !strcmp(uart_dp->name, "rsc-console") ||
-	    !strcmp(uart_dp->name, "rsc-control")) {
+	if (of_node_name_eq(uart_dp, "rsc") ||
+	    of_node_name_eq(uart_dp, "rsc-console") ||
+	    of_node_name_eq(uart_dp, "rsc-control")) {
 		mode = of_get_property(uart_dp,
 				       "ssp-console-modes", NULL);
 		if (!mode)
 			mode = "115200,8,n,1,-";
-	} else if (!strcmp(uart_dp->name, "lom-console")) {
+	} else if (of_node_name_eq(uart_dp, "lom-console")) {
 		mode = "9600,8,n,1,-";
 	} else {
 		struct device_node *dp;
drivers/tty/serial/sunsu.c +2 -2
index 6cf3e9b0728f..8ed60ccd45fb 100644
@@ -1482,8 +1482,8 @@ static int su_probe(struct platform_device *op)
 	up->port.ops = &sunsu_pops;
 
 	ignore_line = false;
-	if (!strcmp(dp->name, "rsc-console") ||
-	    !strcmp(dp->name, "lom-console"))
+	if (of_node_name_eq(dp, "rsc-console") ||
+	    of_node_name_eq(dp, "lom-console"))
 		ignore_line = true;
 
 	sunserial_console_match(SUNSU_CONSOLE(), dp,
Signature · 1 line
2.19.1
maintainer Acked-by on v1 1/1
#1 lore raw

From: Rob Herring <[email protected]>
Date: Wed, 5 Dec 2018 13:50:43 -0600

Quoted 6 lines

Convert string compares of DT node names to use of_node_name_eq helper instead. This removes direct access to the node name pointer.

For hvc, the code can also be simplified by using of_stdout pointer instead of searching again for the stdout node.

Quoted 10 lines
Cc Benjamin Herrenschmidt <[email protected]>
Cc Paul Mackerras <[email protected]>
Cc Michael Ellerman <[email protected]>
Cc Greg Kroah-Hartman <[email protected]>
Cc Jiri Slaby <[email protected]>
Cc "David S. Miller" <[email protected]>
reviewer Acked-by on v1 1/1
#2 lore raw
In reply to Rob Herring
Quoted 16 lines · Rob Herring

Convert string compares of DT node names to use of_node_name_eq helper instead. This removes direct access to the node name pointer.

For hvc, the code can also be simplified by using of_stdout pointer instead of searching again for the stdout node.

Cc Benjamin Herrenschmidt <[email protected]>
Cc Paul Mackerras <[email protected]>
Cc Michael Ellerman <[email protected]>
Cc Greg Kroah-Hartman <[email protected]>
Cc Jiri Slaby <[email protected]>
Cc "David S. Miller" <[email protected]>
Quoted 4 lines
---
 drivers/tty/hvc/hvc_opal.c      |  2 +-
 drivers/tty/hvc/hvc_vio.c       | 11 +----------
 drivers/tty/serial/pmac_zilog.c |  4 ++--

LGTM.

cheers