diff options
author | Subhash Jadavani <subhashj@codeaurora.org> | 2015-01-29 18:52:18 -0800 |
---|---|---|
committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-22 10:58:42 -0700 |
commit | 8ef05b55a0303f01b8c020b877797224aca3a834 (patch) | |
tree | e348ca0effe212aab238b4d052bc237527621ba0 | |
parent | 061c93d4f1267fee27767aecaab83119e8dfecce (diff) |
scsi: ufs-qcom: disable low power modes and run slow on newer controller
Newer UFS controllers (revision 2) still need to be validated properly
hence disable the low power modes for it until they are validated
thoroughly.
Also run the UFS interface in PWM gear until High Speed Gear operation
is stabililized.
Change-Id: I310b49030d084557f487f3095fc7e1cfa68335e6
Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
-rw-r--r-- | drivers/scsi/ufs/ufs-qcom.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/drivers/scsi/ufs/ufs-qcom.c b/drivers/scsi/ufs/ufs-qcom.c index 450b5377051a..cdde478eb511 100644 --- a/drivers/scsi/ufs/ufs-qcom.c +++ b/drivers/scsi/ufs/ufs-qcom.c @@ -904,6 +904,13 @@ static int ufs_qcom_pwr_change_notify(struct ufs_hba *hba, ufs_qcom_cap.hs_rx_gear = UFS_HS_G2; } + /* + * Until High Speed gear mode is stabilized, operate in PWM gear + * mode for newer controller versions. + */ + if (host->hw_ver.major >= 0x2) + ufs_qcom_cap.desired_working_mode = SLOW; + ret = ufs_qcom_get_pwr_dev_param(&ufs_qcom_cap, dev_max_params, dev_req_params); @@ -1010,9 +1017,11 @@ static void ufs_qcom_set_caps(struct ufs_hba *hba) ufs_qcom_get_controller_revision(hba, &major, &minor, &step); - hba->caps |= UFSHCD_CAP_CLK_GATING | UFSHCD_CAP_CLK_SCALING; - hba->caps |= UFSHCD_CAP_AUTO_BKOPS_SUSPEND; - hba->caps |= UFSHCD_CAP_HIBERN8_ENTER_ON_IDLE; + if (host->hw_ver.major < 0x2) { + hba->caps |= UFSHCD_CAP_CLK_GATING | UFSHCD_CAP_CLK_SCALING; + hba->caps |= UFSHCD_CAP_AUTO_BKOPS_SUSPEND; + hba->caps |= UFSHCD_CAP_HIBERN8_ENTER_ON_IDLE; + } if (host->hw_ver.major >= 0x2) { hba->caps |= UFSHCD_CAP_POWER_COLLAPSE_DURING_HIBERN8; |