summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSubhash Jadavani <subhashj@codeaurora.org>2015-02-20 12:09:55 -0800
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-22 10:58:57 -0700
commit04825be019a90563774fb922ca3f0ece1cca0d7a (patch)
treed5bd41b071ae1883df99262e324cd49fd6b2ba17
parent01955a9ec968f900fb2cbed11f4c0d61f7c9221b (diff)
scsi: ufs-qcom: disable lane symbol clocks if link is not active
UFS lane symbol clocks can be disabled if the UFS link is not active, this change adds support to vote these clocks off when link is inactive. Change-Id: Id441d34b0b8ad4f3a3f3e0dacb8c9797b1de64b6 Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
-rw-r--r--drivers/scsi/ufs/ufs-qcom.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/scsi/ufs/ufs-qcom.c b/drivers/scsi/ufs/ufs-qcom.c
index 9df457a0cacf..ed434a568977 100644
--- a/drivers/scsi/ufs/ufs-qcom.c
+++ b/drivers/scsi/ufs/ufs-qcom.c
@@ -595,6 +595,7 @@ static int ufs_qcom_suspend(struct ufs_hba *hba, enum ufs_pm_op pm_op)
* rail and low noise analog power rail for PLL can be switched off.
*/
if (!ufs_qcom_is_link_active(hba)) {
+ ufs_qcom_disable_lane_clks(host);
phy_power_off(phy);
ufs_qcom_ice_suspend(host);
}
@@ -616,6 +617,10 @@ static int ufs_qcom_resume(struct ufs_hba *hba, enum ufs_pm_op pm_op)
goto out;
}
+ err = ufs_qcom_enable_lane_clks(host);
+ if (err)
+ goto out;
+
err = ufs_qcom_ice_resume(host);
if (err) {
dev_err(hba->dev, "%s: ufs_qcom_ice_resume failed, err = %d\n",