Recurse and make sure parent clocks get enabled/disabled.
Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
        unsigned long flags;
        int ret;
 
+       if (!clk)
+               return -EINVAL;
+
+       clk_enable(clk->parent);
+
        spin_lock_irqsave(&clock_lock, flags);
        ret = __clk_enable(clk);
        spin_unlock_irqrestore(&clock_lock, flags);
 {
        unsigned long flags;
 
+       if (!clk)
+               return -EINVAL;
+
        spin_lock_irqsave(&clock_lock, flags);
        __clk_disable(clk);
        spin_unlock_irqrestore(&clock_lock, flags);
+
+       clk_disable(clk->parent);
 }
 EXPORT_SYMBOL_GPL(clk_disable);