Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livep...
[firefly-linux-kernel-4.4.55.git] / drivers / clk / clk.c
index ecb1e52325548405e1cfebf7aa311b47c163d52f..f13c3f4228d4d51d5649c3705fd565b4aac82913 100644 (file)
@@ -427,6 +427,11 @@ bool clk_hw_is_prepared(const struct clk_hw *hw)
        return clk_core_is_prepared(hw->core);
 }
 
+bool clk_hw_is_enabled(const struct clk_hw *hw)
+{
+       return clk_core_is_enabled(hw->core);
+}
+
 bool __clk_is_enabled(struct clk *clk)
 {
        if (!clk)
@@ -3197,13 +3202,15 @@ void __init of_clk_init(const struct of_device_id *matches)
                        list_for_each_entry_safe(clk_provider, next,
                                                 &clk_provider_list, node) {
                                list_del(&clk_provider->node);
+                               of_node_put(clk_provider->np);
                                kfree(clk_provider);
                        }
+                       of_node_put(np);
                        return;
                }
 
                parent->clk_init_cb = match->data;
-               parent->np = np;
+               parent->np = of_node_get(np);
                list_add_tail(&parent->node, &clk_provider_list);
        }
 
@@ -3217,6 +3224,7 @@ void __init of_clk_init(const struct of_device_id *matches)
                                of_clk_set_defaults(clk_provider->np, true);
 
                                list_del(&clk_provider->node);
+                               of_node_put(clk_provider->np);
                                kfree(clk_provider);
                                is_init_done = true;
                        }