msm: clock: Support depends in toplevel

Two types of clocks support depends (branches and rcgs) and soon
we'll be adding a third (rpm). Support depends in the core so as
to avoid duplicating that logic all over.

Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
diff --git a/arch/arm/mach-msm/clock-local.c b/arch/arm/mach-msm/clock-local.c
index 6f29803..b7542c8 100644
--- a/arch/arm/mach-msm/clock-local.c
+++ b/arch/arm/mach-msm/clock-local.c
@@ -514,17 +514,9 @@
 
 	rc = local_vote_sys_vdd(clk->current_freq->sys_vdd);
 	if (rc)
-		goto err_vdd;
-	rc = clk_enable(clk->depends);
-	if (rc)
-		goto err_dep;
+		return rc;
 	_rcg_clk_enable(clk);
 	return rc;
-
-err_dep:
-	local_unvote_sys_vdd(clk->current_freq->sys_vdd);
-err_vdd:
-	return rc;
 }
 
 /* Disable a clock and any related power rail. */
@@ -533,11 +525,10 @@
 	struct rcg_clk *clk = to_rcg_clk(c);
 
 	_rcg_clk_disable(clk);
-	clk_disable(clk->depends);
 	local_unvote_sys_vdd(clk->current_freq->sys_vdd);
 }
 
-/* Turn off a clock at boot, without checking refcounts or disabling depends. */
+/* Turn off a clock at boot, without checking refcounts. */
 void rcg_clk_auto_off(struct clk *c)
 {
 	_rcg_clk_disable(to_rcg_clk(c));
@@ -911,14 +902,9 @@
 
 int branch_clk_enable(struct clk *clk)
 {
-	int rc;
 	unsigned long flags;
 	struct branch_clk *branch = to_branch_clk(clk);
 
-	rc = clk_enable(branch->depends);
-	if (rc)
-		return rc;
-
 	spin_lock_irqsave(&local_clock_reg_lock, flags);
 	__branch_clk_enable_reg(&branch->b, branch->c.dbg_name);
 	branch->enabled = true;
@@ -936,8 +922,6 @@
 	__branch_clk_disable_reg(&branch->b, branch->c.dbg_name);
 	branch->enabled = false;
 	spin_unlock_irqrestore(&local_clock_reg_lock, flags);
-
-	clk_disable(branch->depends);
 }
 
 struct clk *branch_clk_get_parent(struct clk *clk)