diff --git a/drivers/tty/serial/sunsu.c b/drivers/tty/serial/sunsu.c index 4a27c0114d50aff129c14c3733e9db8b20cd05b9..6cf3e9b0728f83d0c7b7adae94bcf45fea694066 100644 --- a/drivers/tty/serial/sunsu.c +++ b/drivers/tty/serial/sunsu.c @@ -1394,32 +1394,22 @@ static inline struct console *SUNSU_CONSOLE(void) static enum su_type su_get_type(struct device_node *dp) { struct device_node *ap = of_find_node_by_path("/aliases"); - enum su_type rc = SU_PORT_PORT; if (ap) { - struct device_node *tmp; const char *keyb = of_get_property(ap, "keyboard", NULL); const char *ms = of_get_property(ap, "mouse", NULL); if (keyb) { - tmp = of_find_node_by_path(keyb); - if (tmp && dp == tmp){ - rc = SU_PORT_KBD; - goto out; - } + if (dp == of_find_node_by_path(keyb)) + return SU_PORT_KBD; } if (ms) { - tmp = of_find_node_by_path(ms); - if (tmp && dp == tmp){ - rc = SU_PORT_MS; - goto out; - } + if (dp == of_find_node_by_path(ms)) + return SU_PORT_MS; } } -out: - of_node_put(ap); - return rc; + return SU_PORT_PORT; } static int su_probe(struct platform_device *op)