msm: clock-rpm: Support clock dependencies for enable/disable
In order to do this, we must fix up rpm_clk_enable() to properly
roll back RPM calls in the event of errors. Otherwise, the
dependency could be disabled while an RPM clock needing it is
still enabled.
Signed-off-by: Matt Wagantall <mattw@codeaurora.org>
diff --git a/arch/arm/mach-msm/clock-rpm.c b/arch/arm/mach-msm/clock-rpm.c
index 1326344..286b3d0 100644
--- a/arch/arm/mach-msm/clock-rpm.c
+++ b/arch/arm/mach-msm/clock-rpm.c
@@ -54,6 +54,11 @@
iv.value = max(this_sleep_khz, peer_sleep_khz);
rc = msm_rpmrs_set_noirq(MSM_RPM_CTX_SET_SLEEP, &iv, 1);
+ if (rc) {
+ iv.value = peer_khz;
+ msm_rpmrs_set_noirq(MSM_RPM_CTX_SET_0, &iv, 1);
+ }
+
out:
if (!rc)
r->enabled = true;