From: "Bao D. Nguyen" <quic_nguyenb@quicinc.com>
To: "Peter Wang (王信友)" <peter.wang@mediatek.com>,
"avri.altman@wdc.com" <avri.altman@wdc.com>,
"quic_cang@quicinc.com" <quic_cang@quicinc.com>,
"quic_nitirawa@quicinc.com" <quic_nitirawa@quicinc.com>,
"manivannan.sadhasivam@linaro.org"
<manivannan.sadhasivam@linaro.org>,
"bvanassche@acm.org" <bvanassche@acm.org>,
"adrian.hunter@intel.com" <adrian.hunter@intel.com>,
"martin.petersen@oracle.com" <martin.petersen@oracle.com>
Cc: "beanhuo@micron.com" <beanhuo@micron.com>,
"chu.stanley@gmail.com" <chu.stanley@gmail.com>,
"quic_mapa@quicinc.com" <quic_mapa@quicinc.com>,
"linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>,
"AngeloGioacchino Del Regno"
<angelogioacchino.delregno@collabora.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"alim.akhtar@samsung.com" <alim.akhtar@samsung.com>,
"linux-arm-msm@vger.kernel.org" <linux-arm-msm@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"matthias.bgg@gmail.com" <matthias.bgg@gmail.com>,
"James.Bottomley@HansenPartnership.com"
<James.Bottomley@HansenPartnership.com>,
"mani@kernel.org" <mani@kernel.org>,
"linux-mediatek@lists.infradead.org"
<linux-mediatek@lists.infradead.org>
Subject: Re: [PATCH v1 1/2] scsi: ufs: core: Remove UFS_DEVICE_QUIRK_DELAY_AFTER_LPM quirk
Date: Thu, 2 Oct 2025 11:48:51 -0700 [thread overview]
Message-ID: <69a111a2-219e-e3d4-8b89-3400facc02e3@quicinc.com> (raw)
In-Reply-To: <450e834545af935010ffc4f9079e56e47851f197.camel@mediatek.com>
On 10/2/2025 12:57 AM, Peter Wang (王信友) wrote:
> On Wed, 2025-10-01 at 13:57 -0700, Bao D. Nguyen wrote:
>>
>> diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c
>> index 2e1fa8c..45e509b 100644
>> --- a/drivers/ufs/core/ufshcd.c
>> +++ b/drivers/ufs/core/ufshcd.c
>> @@ -9738,10 +9738,9 @@ static void ufshcd_vreg_set_lpm(struct ufs_hba
>> *hba)
>> }
>>
>> /*
>> - * Some UFS devices require delay after VCC power rail is
>> turned-off.
>> + * All UFS devices require delay after VCC power rail is
>> turned-off.
>> */
>> - if (vcc_off && hba->vreg_info.vcc &&
>> - hba->dev_quirks & UFS_DEVICE_QUIRK_DELAY_AFTER_LPM)
>> + if (vcc_off && hba->vreg_info.vcc)
>> usleep_range(5000, 5100);
>> }
>>
>> diff --git a/drivers/ufs/host/ufs-mediatek.c b/drivers/ufs/host/ufs-
>> mediatek.c
>> index f902ce0..5c204d1 100644
>> --- a/drivers/ufs/host/ufs-mediatek.c
>> +++ b/drivers/ufs/host/ufs-mediatek.c
>> @@ -40,8 +40,7 @@ static int ufs_mtk_config_mcq(struct ufs_hba *hba,
>> bool irq);
>> static const struct ufs_dev_quirk ufs_mtk_dev_fixups[] = {
>> { .wmanufacturerid = UFS_ANY_VENDOR,
>> .model = UFS_ANY_MODEL,
>> - .quirk = UFS_DEVICE_QUIRK_DELAY_AFTER_LPM |
>> - UFS_DEVICE_QUIRK_DELAY_BEFORE_LPM },
>> + .quirk = UFS_DEVICE_QUIRK_DELAY_BEFORE_LPM },
>> { .wmanufacturerid = UFS_VENDOR_SKHYNIX,
>> .model = "H9HQ21AFAMZDAR",
>> .quirk = UFS_DEVICE_QUIRK_SUPPORT_EXTENDED_FEATURES },
>> @@ -1713,15 +1712,13 @@ static void ufs_mtk_fixup_dev_quirks(struct
>> ufs_hba *hba)
>> {
>> ufshcd_fixup_dev_quirks(hba, ufs_mtk_dev_fixups);
>>
>> - if (ufs_mtk_is_broken_vcc(hba) && hba->vreg_info.vcc &&
>> - (hba->dev_quirks & UFS_DEVICE_QUIRK_DELAY_AFTER_LPM)) {
>> + if (ufs_mtk_is_broken_vcc(hba) && hba->vreg_info.vcc) {
>>
>
> Hi Bao,
>
> Adding a delay is not reasonable if we have decided to
> keep VCC always on.
Hi Peter,
The current Mediatek platform driver applies this quirk to all ufs
vendors which is consistent with what we would like to do in the
Qualcomm platform driver per the vendor's requests.
I do see that, about 5 years ago, Mediatek merged a patch to keep the
device vcc always on, probably to workaround some HW issues. Since this
is a very old patch and the impact of this change on a broken hardware
is minimal, I would like weight the benefit of cleaning up the ufs core
driver by removing the unnecessary quirk
UFS_DEVICE_QUIRK_DELAY_AFTER_LPM vs the inconvenience of a 5ms
(potentially reduce to 2ms) delay impact it may cause on an old broken
HW in the suspend/shutdown path.
I believe removing the UFS_DEVICE_QUIRK_DELAY_AFTER_LPM quirk in the ufs
core driver as well as all the platform drivers yields positive net
benefits in this case.
Thanks, Bao
>
> Thanks
> Peter
>
>
>> hba->vreg_info.vcc->always_on = true;
>> /*
>> * VCC will be kept always-on thus we don't
>> - * need any delay during regulator operations
>> + * need any delay before putting device's VCC in LPM
>> mode.
>> */
>> - hba->dev_quirks &=
>> ~(UFS_DEVICE_QUIRK_DELAY_BEFORE_LPM |
>> - UFS_DEVICE_QUIRK_DELAY_AFTER_LPM);
>> + hba->dev_quirks &=
>> ~UFS_DEVICE_QUIRK_DELAY_BEFORE_LPM;
>>
>
>
>
>
>
next prev parent reply other threads:[~2025-10-02 18:49 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <cover.1759348507.git.quic_nguyenb@quicinc.com>
2025-10-01 20:57 ` [PATCH v1 1/2] scsi: ufs: core: Remove UFS_DEVICE_QUIRK_DELAY_AFTER_LPM quirk Bao D. Nguyen
2025-10-02 7:57 ` Peter Wang (王信友)
2025-10-02 18:48 ` Bao D. Nguyen [this message]
2025-10-03 3:10 ` Peter Wang (王信友)
2025-10-03 21:11 ` Bao D. Nguyen
2025-10-07 7:02 ` Peter Wang (王信友)
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=69a111a2-219e-e3d4-8b89-3400facc02e3@quicinc.com \
--to=quic_nguyenb@quicinc.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=adrian.hunter@intel.com \
--cc=alim.akhtar@samsung.com \
--cc=angelogioacchino.delregno@collabora.com \
--cc=avri.altman@wdc.com \
--cc=beanhuo@micron.com \
--cc=bvanassche@acm.org \
--cc=chu.stanley@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux-scsi@vger.kernel.org \
--cc=mani@kernel.org \
--cc=manivannan.sadhasivam@linaro.org \
--cc=martin.petersen@oracle.com \
--cc=matthias.bgg@gmail.com \
--cc=peter.wang@mediatek.com \
--cc=quic_cang@quicinc.com \
--cc=quic_mapa@quicinc.com \
--cc=quic_nitirawa@quicinc.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox