summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSubhash Jadavani <subhashj@codeaurora.org>2015-01-02 19:12:44 -0800
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-22 10:58:21 -0700
commitbd0b5b89190f00a06ed6773aa6ecfa39884835be (patch)
treeed796f70e8ad73c0d8581a8d655e58059bb0e8db
parenta7578e830eb19df60edaa1ef7f4028835ea7c522 (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.c11
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)