diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2017-01-13 08:07:51 -0800 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-01-13 08:07:50 -0800 |
| commit | b9fd387cd64495a426f5d3f966641f13913487b2 (patch) | |
| tree | 31e93533c160670437f3fe06700a491f284de2c6 | |
| parent | cd5ef3d16b652708606ef8065926286dd5ea3311 (diff) | |
| parent | a7602b3f5f654a07e0963c90aaa0d9c5b992b019 (diff) | |
Merge "clk: qcom: Fix for rate request to RPM during handoff"
| -rw-r--r-- | drivers/clk/qcom/clk-smd-rpm.c | 29 |
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, |
