clk: ti: Preserve node in ti_dt_clocks_register()
authorTony Lindgren <tony@atomide.com>
Fri, 4 Feb 2022 07:14:43 +0000 (09:14 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 13 Apr 2022 18:59:12 +0000 (20:59 +0200)
[ Upstream commit 80864594ff2ad002e2755daf97d46ff0c86faf1f ]

In preparation for making use of the clock-output-names, we want to
keep node around in ti_dt_clocks_register().

This change should not needed as a fix currently.

Signed-off-by: Tony Lindgren <tony@atomide.com>
Link: https://lore.kernel.org/r/20220204071449.16762-3-tony@atomide.com
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/clk/ti/clk.c

index 3da33c7..29eafab 100644 (file)
@@ -131,7 +131,7 @@ int ti_clk_setup_ll_ops(struct ti_clk_ll_ops *ops)
 void __init ti_dt_clocks_register(struct ti_dt_clk oclks[])
 {
        struct ti_dt_clk *c;
-       struct device_node *node, *parent;
+       struct device_node *node, *parent, *child;
        struct clk *clk;
        struct of_phandle_args clkspec;
        char buf[64];
@@ -171,10 +171,13 @@ void __init ti_dt_clocks_register(struct ti_dt_clk oclks[])
                node = of_find_node_by_name(NULL, buf);
                if (num_args && compat_mode) {
                        parent = node;
-                       node = of_get_child_by_name(parent, "clock");
-                       if (!node)
-                               node = of_get_child_by_name(parent, "clk");
-                       of_node_put(parent);
+                       child = of_get_child_by_name(parent, "clock");
+                       if (!child)
+                               child = of_get_child_by_name(parent, "clk");
+                       if (child) {
+                               of_node_put(parent);
+                               node = child;
+                       }
                }
 
                clkspec.np = node;