[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <c95c2750-0431-42de-b881-d139d8697d0e@quicinc.com>
Date: Sat, 26 Apr 2025 01:52:51 +0530
From: Nitin Rawat <quic_nitirawa@...cinc.com>
To: Rob Herring <robh@...nel.org>
CC: <alim.akhtar@...sung.com>, <avri.altman@....com>, <bvanassche@....org>,
<krzk+dt@...nel.org>, <mani@...nel.org>, <conor+dt@...nel.org>,
<James.Bottomley@...senpartnership.com>, <martin.petersen@...cle.com>,
<beanhuo@...ron.com>, <peter.wang@...iatek.com>,
<linux-arm-msm@...r.kernel.org>, <linux-scsi@...r.kernel.org>,
<linux-kernel@...r.kernel.org>, <devicetree@...r.kernel.org>
Subject: Re: [PATCH V1 3/3] scsi: ufs: qcom: Add support to disable UFS LPM
Feature
On 4/23/2025 7:26 PM, Rob Herring wrote:
> On Wed, Apr 23, 2025 at 01:14:27AM +0530, Nitin Rawat wrote:
>>
>>
>> On 4/22/2025 6:15 PM, Rob Herring wrote:
>>> On Thu, Apr 17, 2025 at 06:16:45PM +0530, Nitin Rawat wrote:
>>>> There are emulation FPGA platforms or other platforms where UFS low
>>>> power mode is either unsupported or power efficiency is not a critical
>>>> requirement.
>>>>
>>>> Disable all low power mode UFS feature based on the "disable-lpm" device
>>>> tree property parsed in platform driver.
>>>>
>>>> Signed-off-by: Nitin Rawat <quic_nitirawa@...cinc.com>
>>>> ---
>>>> drivers/ufs/host/ufs-qcom.c | 15 ++++++++-------
>>>> 1 file changed, 8 insertions(+), 7 deletions(-)
>>>>
>>>> diff --git a/drivers/ufs/host/ufs-qcom.c b/drivers/ufs/host/ufs-qcom.c
>>>> index 1b37449fbffc..1024edf36b68 100644
>>>> --- a/drivers/ufs/host/ufs-qcom.c
>>>> +++ b/drivers/ufs/host/ufs-qcom.c
>>>> @@ -1014,13 +1014,14 @@ static void ufs_qcom_set_host_caps(struct ufs_hba *hba)
>>>>
>>>> static void ufs_qcom_set_caps(struct ufs_hba *hba)
>>>> {
>>>> - hba->caps |= UFSHCD_CAP_CLK_GATING | UFSHCD_CAP_HIBERN8_WITH_CLK_GATING;
>>>> - hba->caps |= UFSHCD_CAP_CLK_SCALING | UFSHCD_CAP_WB_WITH_CLK_SCALING;
>>>> - hba->caps |= UFSHCD_CAP_AUTO_BKOPS_SUSPEND;
>>>> - hba->caps |= UFSHCD_CAP_WB_EN;
>>>> - hba->caps |= UFSHCD_CAP_AGGR_POWER_COLLAPSE;
>>>> - hba->caps |= UFSHCD_CAP_RPM_AUTOSUSPEND;
>>>> -
>>>> + if (!hba->disable_lpm) {
>>>> + hba->caps |= UFSHCD_CAP_CLK_GATING | UFSHCD_CAP_HIBERN8_WITH_CLK_GATING;
>>>> + hba->caps |= UFSHCD_CAP_CLK_SCALING | UFSHCD_CAP_WB_WITH_CLK_SCALING;
>>>> + hba->caps |= UFSHCD_CAP_AUTO_BKOPS_SUSPEND;
>>>> + hba->caps |= UFSHCD_CAP_WB_EN;
>>>> + hba->caps |= UFSHCD_CAP_AGGR_POWER_COLLAPSE;
>>>> + hba->caps |= UFSHCD_CAP_RPM_AUTOSUSPEND;
>>>> + }
>>>
>>> Doesn't RuntimePM already have userspace controls? And that's a Linux
>>> feature that shouldn't really be controlled by DT. I think this property
>>> should still to things defined by the UFS spec.
>>
>> Hi Rob,
>> Yes userspace has runtime PM control but by the time UFS driver probes
>> completes and userspace is up, there are chances runtime PM may get kicked
>> in.
>
> That sounds like a problem more than 1 device would have...
Yes, Rob, since there's a possibility that runtime suspend might be
triggered for some devices before probe completes and userspace is up,
IMO it's better to disable the runtime PM capability during
initialization based on the device tree for specific FPGA platforms that
don't support LPM.
What's your opinion on this?"
Regards,
Nitin
>
> Rob
Powered by blists - more mailing lists