summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2017-01-13 08:07:51 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2017-01-13 08:07:50 -0800
commitb9fd387cd64495a426f5d3f966641f13913487b2 (patch)
tree31e93533c160670437f3fe06700a491f284de2c6
parentcd5ef3d16b652708606ef8065926286dd5ea3311 (diff)
parenta7602b3f5f654a07e0963c90aaa0d9c5b992b019 (diff)
Merge "clk: qcom: Fix for rate request to RPM during handoff"
-rw-r--r--drivers/clk/qcom/clk-smd-rpm.c29
1 files changed, 4 insertions, 25 deletions
diff --git a/drivers/clk/qcom/clk-smd-rpm.c b/drivers/clk/qcom/clk-smd-rpm.c
index 79db93ac5ae1..095530e72b78 100644
--- a/drivers/clk/qcom/clk-smd-rpm.c
+++ b/drivers/clk/qcom/clk-smd-rpm.c
@@ -185,28 +185,7 @@ static int clk_smd_rpm_prepare(struct clk_hw *hw);
static int clk_smd_rpm_handoff(struct clk_hw *hw)
{
- int ret = 0;
- uint32_t value = cpu_to_le32(INT_MAX);
- struct clk_smd_rpm *r = to_clk_smd_rpm(hw);
- struct msm_rpm_kvp req = {
- .key = cpu_to_le32(r->rpm_key),
- .data = (void *)&value,
- .length = sizeof(value),
- };
-
- ret = msm_rpm_send_message(QCOM_SMD_RPM_ACTIVE_STATE, r->rpm_res_type,
- r->rpm_clk_id, &req, 1);
- if (ret)
- return ret;
-
- ret = msm_rpm_send_message(QCOM_SMD_RPM_SLEEP_STATE, r->rpm_res_type,
- r->rpm_clk_id, &req, 1);
- if (ret)
- return ret;
-
- ret = clk_smd_rpm_prepare(hw);
-
- return ret;
+ return clk_smd_rpm_prepare(hw);
}
static int clk_smd_rpm_set_rate_active(struct clk_smd_rpm *r,
@@ -282,12 +261,12 @@ static int clk_smd_rpm_prepare(struct clk_hw *hw)
mutex_lock(&rpm_smd_clk_lock);
+ to_active_sleep(r, r->rate, &this_rate, &this_sleep_rate);
+
/* Don't send requests to the RPM if the rate has not been set. */
- if (!r->rate)
+ if (this_rate == 0)
goto out;
- to_active_sleep(r, r->rate, &this_rate, &this_sleep_rate);
-
/* Take peer clock's rate into account only if it's enabled. */
if (peer->enabled)
to_active_sleep(peer, peer->rate,