diff options
author | Subhash Jadavani <subhashj@codeaurora.org> | 2015-01-02 19:12:44 -0800 |
---|---|---|
committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-22 10:58:21 -0700 |
commit | bd0b5b89190f00a06ed6773aa6ecfa39884835be (patch) | |
tree | ed796f70e8ad73c0d8581a8d655e58059bb0e8db | |
parent | a7578e830eb19df60edaa1ef7f4028835ea7c522 (diff) |
scsi: ufs-qcom: remove unnecessary quirks for QUniPro
QUniPro doesn't require some of the quirks required for legacy UniPro
controller hence this change disables those quirks.
Change-Id: Ic97ec38d4a9ee7a51d8f336bcbc8fd9533db2f8d
Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
-rw-r--r-- | drivers/scsi/ufs/ufs-qcom.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/scsi/ufs/ufs-qcom.c b/drivers/scsi/ufs/ufs-qcom.c index d10636f99512..ffce2f92c363 100644 --- a/drivers/scsi/ufs/ufs-qcom.c +++ b/drivers/scsi/ufs/ufs-qcom.c @@ -835,6 +835,7 @@ static void ufs_qcom_advertise_quirks(struct ufs_hba *hba) { u8 major; u16 minor, step; + struct ufs_qcom_host *host = hba->priv; ufs_qcom_get_controller_revision(hba, &major, &minor, &step); @@ -847,6 +848,16 @@ static void ufs_qcom_advertise_quirks(struct ufs_hba *hba) if ((minor == 0x001) && (step == 0x0001)) hba->quirks |= UFSHCD_QUIRK_BROKEN_INTR_AGGR; } + + if (major >= 0x2) { + hba->quirks |= UFSHCD_QUIRK_BROKEN_LCC; + + if (!ufs_qcom_cap_qunipro(host)) + /* Legacy UniPro mode still need following quirks */ + hba->quirks |= (UFSHCD_QUIRK_DELAY_BEFORE_DME_CMDS + | UFSHCD_QUIRK_DME_PEER_ACCESS_AUTO_MODE + | UFSHCD_QUIRK_BROKEN_PA_RXHSUNTERMCAP); + } } static void ufs_qcom_set_caps(struct ufs_hba *hba) |