From: Ziqi Chen <quic_ziqichen@quicinc.com>
To: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Cc: Manivannan Sadhasivam <mani@kernel.org>, <quic_cang@quicinc.com>,
<bvanassche@acm.org>, <beanhuo@micron.com>, <avri.altman@wdc.com>,
<junwoo80.lee@samsung.com>, <martin.petersen@oracle.com>,
<quic_nguyenb@quicinc.com>, <quic_nitirawa@quicinc.com>,
<quic_rampraka@quicinc.com>, <linux-scsi@vger.kernel.org>,
"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
"open list:ARM/QUALCOMM MAILING LIST"
<linux-arm-msm@vger.kernel.org>,
open list <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 4/8] scsi: ufs: qcom: Implement the freq_to_gear_speed() vops
Date: Fri, 24 Jan 2025 17:34:58 +0800 [thread overview]
Message-ID: <da2fa545-5b4a-4113-85f5-6c2ffaf4e60e@quicinc.com> (raw)
In-Reply-To: <20250124053525.2sbefy4jitmzr6so@thinkpad>
On 1/24/2025 1:35 PM, Manivannan Sadhasivam wrote:
> On Tue, Jan 21, 2025 at 11:52:42AM +0800, Ziqi Chen wrote:
>>
>>
>> On 1/20/2025 11:41 PM, Manivannan Sadhasivam wrote:
>>> On Mon, Jan 20, 2025 at 08:07:07PM +0800, Ziqi Chen wrote:
>>>> Hi Mani,
>>>>
>>>> Thanks for your comments~
>>>>
>>>> On 1/19/2025 3:30 PM, Manivannan Sadhasivam wrote:
>>>>> On Thu, Jan 16, 2025 at 05:11:45PM +0800, Ziqi Chen wrote:
>>>>>> From: Can Guo <quic_cang@quicinc.com>
>>>>>>
>>>>>> Implement the freq_to_gear_speed() vops to map the unipro core clock
>>>>>> frequency to the corresponding maximum supported gear speed.
>>>>>>
>>>>>> Co-developed-by: Ziqi Chen <quic_ziqichen@quicinc.com>
>>>>>> Signed-off-by: Ziqi Chen <quic_ziqichen@quicinc.com>
>>>>>> Signed-off-by: Can Guo <quic_cang@quicinc.com>
>>>>>> ---
>>>>>> drivers/ufs/host/ufs-qcom.c | 32 ++++++++++++++++++++++++++++++++
>>>>>> 1 file changed, 32 insertions(+)
>>>>>>
>>>>>> diff --git a/drivers/ufs/host/ufs-qcom.c b/drivers/ufs/host/ufs-qcom.c
>>>>>> index 1e8a23eb8c13..64263fa884f5 100644
>>>>>> --- a/drivers/ufs/host/ufs-qcom.c
>>>>>> +++ b/drivers/ufs/host/ufs-qcom.c
>>>>>> @@ -1803,6 +1803,37 @@ static int ufs_qcom_config_esi(struct ufs_hba *hba)
>>>>>> return ret;
>>>>>> }
>>>>>> +static int ufs_qcom_freq_to_gear_speed(struct ufs_hba *hba, unsigned long freq, u32 *gear)
>>>>>> +{
>>>>>> + int ret = 0 >
>>>>> Please do not initialize ret with 0. Return the actual value directly.
>>>>>
>>>>
>>>> If we don't initialize ret here, for the cases of freq matched in the table,
>>>> it will return an unknown ret value. It is not make sense, right?
>>>>
>>>> Or you may want to say we don't need “ret” , just need to return gear value?
>>>> But we need this "ret" to check whether the freq is invalid.
>>>>
>>>
>>> I meant to say that you can just return 0 directly in success case and -EINVAL
>>> in the case of error.
>>>
>> Hi Mani,
>>
>> If we don't print freq here , I think your suggestion is very good. If we
>> print freq in this function , using "ret" to indicate success case and
>> failure case and print freq an the end of this function is the way to avoid
>> code bloat.
>>
>> How do you think about it?
>>
>
> I don't understand how code bloat comes into picture here. I'm just asking for
> this:
>
> static int ufs_qcom_freq_to_gear_speed(struct ufs_hba *hba, unsigned long freq, u32 *gear)
> {
> switch (freq) {
> case 403000000:
> *gear = UFS_HS_G5;
> break;
> ...
>
> default:
> dev_err(hba->dev, "Unsupported clock freq: %ld\n", freq);
> return -EINVAL;
> }
>
> return 0;
> }
>
>>>>>> +
>>>>>> + switch (freq) {
>>>>>> + case 403000000:
>>>>>> + *gear = UFS_HS_G5;
>>>>>> + break;
>>>>>> + case 300000000:
>>>>>> + *gear = UFS_HS_G4;
>>>>>> + break;
>>>>>> + case 201500000:
>>>>>> + *gear = UFS_HS_G3;
>>>>>> + break;
>>>>>> + case 150000000:
>>>>>> + case 100000000:
>>>>>> + *gear = UFS_HS_G2;
>>>>>> + break;
>>>>>> + case 75000000:
>>>>>> + case 37500000:
>>>>>> + *gear = UFS_HS_G1;
>>>>>> + break;
>>>>>> + default:
>>>>>> + ret = -EINVAL;
>>>>>> + dev_err(hba->dev, "Unsupported clock freq\n");
>>>>>
>>>>> Print the freq.
>>>>
>>>> Ok, thank for your suggestion, we can print freq with dev_dbg() in next
>>>> version.
>>>>
>>>
>>> No, use dev_err() with the freq. >
>>> - Mani
>>>
>> I think use dev_err() here does not make sense:
>>
>> 1. This print is not an error message , just an information print. Using
>> dev_err() reduces the readability of this code.
>
> Then why it was dev_err() in the first place?
>
>> 2. This prints will be print very frequent, I afraid it will increase the
>> latency of clock scaling.
>>
>
> First you need to decide whether this print should warn user or not. It is
> telling users that the OPP table supplied a frequency that doesn't match the
> gear speed. This can happen if there is a discrepancy between DT and the driver.
> In that case, the users *should* be warned to fix the driver/DT. If you bury it
> with dev_dbg(), no one will notice it.
>
> If your concern is with the frequency of logs, then use dev_err_ratelimited().
>
> - Mani
>
I misunderstand your point Mani, I thought you want me to print freq for
all cases... if you mean that print failure case, I already added it in
patch V2.
-Ziqi
next prev parent reply other threads:[~2025-01-24 9:36 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-16 9:11 [PATCH 0/8] Support Multi-frequency scale for UFS Ziqi Chen
2025-01-16 9:11 ` [PATCH 1/8] scsi: ufs: core: Pass target_freq to clk_scale_notify() vops Ziqi Chen
2025-01-19 7:11 ` Manivannan Sadhasivam
2025-01-20 12:01 ` Ziqi Chen
2025-01-20 15:36 ` Manivannan Sadhasivam
2025-01-21 3:51 ` Ziqi Chen
2025-01-20 15:38 ` Manivannan Sadhasivam
2025-01-16 9:11 ` [PATCH 2/8] scsi: ufs: qcom: Pass target_freq to clk scale pre and post change Ziqi Chen
2025-01-19 7:22 ` Manivannan Sadhasivam
2025-01-20 12:02 ` Ziqi Chen
2025-01-16 9:11 ` [PATCH 3/8] scsi: ufs: core: Add a vops to map clock frequency to gear speed Ziqi Chen
2025-01-16 9:11 ` [PATCH 4/8] scsi: ufs: qcom: Implement the freq_to_gear_speed() vops Ziqi Chen
2025-01-16 21:40 ` Avri Altman
2025-01-20 12:04 ` Ziqi Chen
2025-01-19 7:30 ` Manivannan Sadhasivam
2025-01-20 12:07 ` Ziqi Chen
2025-01-20 15:41 ` Manivannan Sadhasivam
2025-01-21 3:52 ` Ziqi Chen
2025-01-24 5:35 ` Manivannan Sadhasivam
2025-01-24 9:34 ` Ziqi Chen [this message]
2025-01-16 9:11 ` [PATCH 5/8] scsi: ufs: core: Enable multi-level gear scaling Ziqi Chen
2025-01-19 7:48 ` Manivannan Sadhasivam
2025-01-20 12:08 ` Ziqi Chen
2025-01-16 9:11 ` [PATCH 6/8] scsi: ufs: core: Check if scaling up is required when disable clkscale Ziqi Chen
2025-01-16 9:11 ` [PATCH 7/8] scsi: ufs: core: Toggle Write Booster during clock scaling base on gear speed Ziqi Chen
2025-01-16 13:27 ` Avri Altman
2025-01-20 12:11 ` Ziqi Chen
2025-01-16 9:11 ` [PATCH 8/8] ARM: dts: msm: Use Operation Points V2 for UFS on SM8650 Ziqi Chen
2025-01-16 9:22 ` Krzysztof Kozlowski
2025-01-20 12:12 ` Ziqi Chen
2025-01-16 9:24 ` neil.armstrong
2025-01-20 12:13 ` Ziqi Chen
2025-01-16 9:28 ` [PATCH 0/8] Support Multi-frequency scale for UFS Neil Armstrong
2025-01-20 11:56 ` Ziqi Chen
2025-01-19 7:57 ` Manivannan Sadhasivam
2025-01-20 11:58 ` Ziqi Chen
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=da2fa545-5b4a-4113-85f5-6c2ffaf4e60e@quicinc.com \
--to=quic_ziqichen@quicinc.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=avri.altman@wdc.com \
--cc=beanhuo@micron.com \
--cc=bvanassche@acm.org \
--cc=junwoo80.lee@samsung.com \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=mani@kernel.org \
--cc=manivannan.sadhasivam@linaro.org \
--cc=martin.petersen@oracle.com \
--cc=quic_cang@quicinc.com \
--cc=quic_nguyenb@quicinc.com \
--cc=quic_nitirawa@quicinc.com \
--cc=quic_rampraka@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