From: Can Guo <cang@codeaurora.org>
To: asutoshd@codeaurora.org, nguyenb@codeaurora.org,
hongwus@codeaurora.org, rnayak@codeaurora.org,
linux-scsi@vger.kernel.org, kernel-team@android.com,
saravanak@google.com, salyzyn@google.com, cang@codeaurora.org
Cc: Alim Akhtar <alim.akhtar@samsung.com>,
Avri Altman <avri.altman@wdc.com>,
"James E.J. Bottomley" <jejb@linux.ibm.com>,
"Martin K. Petersen" <martin.petersen@oracle.com>,
Bean Huo <beanhuo@micron.com>,
Stanley Chu <stanley.chu@mediatek.com>,
Bart Van Assche <bvanassche@acm.org>,
Venkat Gopalakrishnan <venkatg@codeaurora.org>,
Tomas Winkler <tomas.winkler@intel.com>,
Thomas Gleixner <tglx@linutronix.de>,
Pedro Sousa <sousa@synopsys.com>,
linux-kernel@vger.kernel.org (open list)
Subject: [PATCH v7 8/8] scsi: ufs: Select INITIAL adapt for HS Gear4
Date: Thu, 6 Feb 2020 00:33:27 -0800 [thread overview]
Message-ID: <1580978008-9327-9-git-send-email-cang@codeaurora.org> (raw)
In-Reply-To: <1580978008-9327-1-git-send-email-cang@codeaurora.org>
ADAPT is added specifically for HS Gear4 mode only, select INITIAL adapt
before do power mode change to G4 and select no adapt before switch to
non-G4 modes.
Signed-off-by: Can Guo <cang@codeaurora.org>
Reviewed-by: Asutosh Das <asutoshd@codeaurora.org>
Reviewed-by: Hongwu Su <hongwus@codeaurora.org>
Reviewed-by: Bean Huo <beanhuo@micron.com>
---
drivers/scsi/ufs/ufshcd.c | 14 +++++++++++++-
drivers/scsi/ufs/ufshci.h | 1 +
drivers/scsi/ufs/unipro.h | 7 +++++++
3 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index 20fa509..e0bf551 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -4071,6 +4071,17 @@ static int ufshcd_change_power_mode(struct ufs_hba *hba,
ufshcd_dme_set(hba, UIC_ARG_MIB(PA_HSSERIES),
pwr_mode->hs_rate);
+ if (hba->ufs_version >= UFSHCI_VERSION_30) {
+ if (pwr_mode->gear_tx == UFS_HS_G4)
+ /* INITIAL ADAPT */
+ ufshcd_dme_set(hba, UIC_ARG_MIB(PA_TXHSADAPTTYPE),
+ PA_INITIAL_ADAPT);
+ else
+ /* NO ADAPT */
+ ufshcd_dme_set(hba, UIC_ARG_MIB(PA_TXHSADAPTTYPE),
+ PA_NO_ADAPT);
+ }
+
ufshcd_dme_set(hba, UIC_ARG_MIB(PA_PWRMODEUSERDATA0),
DL_FC0ProtectionTimeOutVal_Default);
ufshcd_dme_set(hba, UIC_ARG_MIB(PA_PWRMODEUSERDATA1),
@@ -8449,7 +8460,8 @@ int ufshcd_init(struct ufs_hba *hba, void __iomem *mmio_base, unsigned int irq)
if ((hba->ufs_version != UFSHCI_VERSION_10) &&
(hba->ufs_version != UFSHCI_VERSION_11) &&
(hba->ufs_version != UFSHCI_VERSION_20) &&
- (hba->ufs_version != UFSHCI_VERSION_21))
+ (hba->ufs_version != UFSHCI_VERSION_21) &&
+ (hba->ufs_version != UFSHCI_VERSION_30))
dev_err(hba->dev, "invalid UFS version 0x%x\n",
hba->ufs_version);
diff --git a/drivers/scsi/ufs/ufshci.h b/drivers/scsi/ufs/ufshci.h
index c2961d3..f2ee816 100644
--- a/drivers/scsi/ufs/ufshci.h
+++ b/drivers/scsi/ufs/ufshci.h
@@ -104,6 +104,7 @@ enum {
UFSHCI_VERSION_11 = 0x00010100, /* 1.1 */
UFSHCI_VERSION_20 = 0x00000200, /* 2.0 */
UFSHCI_VERSION_21 = 0x00000210, /* 2.1 */
+ UFSHCI_VERSION_30 = 0x00000300, /* 3.0 */
};
/*
diff --git a/drivers/scsi/ufs/unipro.h b/drivers/scsi/ufs/unipro.h
index 3dc4d8b..5a724b2 100644
--- a/drivers/scsi/ufs/unipro.h
+++ b/drivers/scsi/ufs/unipro.h
@@ -146,6 +146,12 @@
#define PA_SLEEPNOCONFIGTIME 0x15A2
#define PA_STALLNOCONFIGTIME 0x15A3
#define PA_SAVECONFIGTIME 0x15A4
+#define PA_TXHSADAPTTYPE 0x15D4
+
+/* Adpat type for PA_TXHSADAPTTYPE attribute */
+#define PA_REFRESH_ADAPT 0x00
+#define PA_INITIAL_ADAPT 0x01
+#define PA_NO_ADAPT 0x03
#define PA_TACTIVATE_TIME_UNIT_US 10
#define PA_HIBERN8_TIME_UNIT_US 100
@@ -203,6 +209,7 @@ enum ufs_hs_gear_tag {
UFS_HS_G1, /* HS Gear 1 (default for reset) */
UFS_HS_G2, /* HS Gear 2 */
UFS_HS_G3, /* HS Gear 3 */
+ UFS_HS_G4, /* HS Gear 4 */
};
enum ufs_unipro_ver {
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
next prev parent reply other threads:[~2020-02-06 8:34 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-06 8:33 [PATCH v7 0/8] UFS driver general fixes bundle 4 Can Guo
2020-02-06 8:33 ` [PATCH v7 1/8] scsi: ufs: Flush exception event before suspend Can Guo
2020-02-06 8:33 ` [PATCH v7 2/8] scsi: ufs: set load before setting voltage in regulators Can Guo
2020-02-06 8:33 ` Can Guo
2020-02-06 8:33 ` Can Guo
2020-02-06 8:33 ` [PATCH v7 3/8] scsi: ufs: Remove the check before call setup clock notify vops Can Guo
2020-02-06 8:33 ` Can Guo
2020-02-06 8:33 ` Can Guo
2020-02-06 8:33 ` [PATCH v7 4/8] scsi: ufs-qcom: Adjust bus bandwidth voting and unvoting Can Guo
2020-02-06 8:33 ` [PATCH v7 5/8] scsi: ufs: Fix ufshcd_hold() caused scheduling while atomic Can Guo
2020-02-06 8:33 ` Can Guo
2020-02-06 8:33 ` Can Guo
2020-02-06 10:28 ` Avri Altman
2020-02-06 10:28 ` Avri Altman
2020-02-06 10:28 ` Avri Altman
2020-02-10 1:28 ` Can Guo
2020-02-10 1:28 ` Can Guo
2020-02-10 1:28 ` Can Guo
2020-02-10 1:59 ` Can Guo
2020-02-10 1:59 ` Can Guo
2020-02-10 1:59 ` Can Guo
2020-02-10 8:23 ` Avri Altman
2020-02-10 8:23 ` Avri Altman
2020-02-10 8:23 ` Avri Altman
2020-02-06 8:33 ` [PATCH v7 6/8] scsi: ufs: Add dev ref clock gating wait time support Can Guo
2020-02-06 8:33 ` Can Guo
2020-02-06 8:33 ` Can Guo
2020-02-06 8:33 ` [PATCH v7 7/8] scsi: ufs-qcom: Delay specific time before gate ref clk Can Guo
2020-02-06 20:33 ` Bjorn Andersson
2020-02-07 1:09 ` Can Guo
2020-02-07 2:10 ` Bjorn Andersson
2020-02-08 0:10 ` Can Guo
2020-02-06 8:33 ` Can Guo [this message]
2020-02-06 13:20 ` [PATCH v7 8/8] scsi: ufs: Select INITIAL adapt for HS Gear4 Avri Altman
2020-02-07 2:56 ` Can Guo
2020-02-07 5:10 ` Can Guo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1580978008-9327-9-git-send-email-cang@codeaurora.org \
--to=cang@codeaurora.org \
--cc=alim.akhtar@samsung.com \
--cc=asutoshd@codeaurora.org \
--cc=avri.altman@wdc.com \
--cc=beanhuo@micron.com \
--cc=bvanassche@acm.org \
--cc=hongwus@codeaurora.org \
--cc=jejb@linux.ibm.com \
--cc=kernel-team@android.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=nguyenb@codeaurora.org \
--cc=rnayak@codeaurora.org \
--cc=salyzyn@google.com \
--cc=saravanak@google.com \
--cc=sousa@synopsys.com \
--cc=stanley.chu@mediatek.com \
--cc=tglx@linutronix.de \
--cc=tomas.winkler@intel.com \
--cc=venkatg@codeaurora.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.