[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <72e476a3-4b62-446a-8284-0558561917bc@quicinc.com>
Date: Mon, 20 Jan 2025 20:04:28 +0800
From: Ziqi Chen <quic_ziqichen@...cinc.com>
To: Avri Altman <Avri.Altman@....com>,
"quic_cang@...cinc.com"
<quic_cang@...cinc.com>,
"bvanassche@....org" <bvanassche@....org>,
"mani@...nel.org" <mani@...nel.org>,
"beanhuo@...ron.com"
<beanhuo@...ron.com>,
"junwoo80.lee@...sung.com" <junwoo80.lee@...sung.com>,
"martin.petersen@...cle.com" <martin.petersen@...cle.com>,
"quic_nguyenb@...cinc.com" <quic_nguyenb@...cinc.com>,
"quic_nitirawa@...cinc.com" <quic_nitirawa@...cinc.com>,
"quic_rampraka@...cinc.com" <quic_rampraka@...cinc.com>
CC: "linux-scsi@...r.kernel.org" <linux-scsi@...r.kernel.org>,
"Manivannan
Sadhasivam" <manivannan.sadhasivam@...aro.org>,
"James E.J. Bottomley"
<James.Bottomley@...senPartnership.com>,
"open list:ARM/QUALCOMM MAILING
LIST" <linux-arm-msm@...r.kernel.org>,
open list
<linux-kernel@...r.kernel.org>
Subject: Re: [PATCH 4/8] scsi: ufs: qcom: Implement the freq_to_gear_speed()
vops
Hi Avri,
Thanks for your review~
On 1/17/2025 5:40 AM, Avri Altman wrote:
>> From: Can Guo <quic_cang@...cinc.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@...cinc.com>
>> Signed-off-by: Ziqi Chen <quic_ziqichen@...cinc.com>
>> Signed-off-by: Can Guo <quic_cang@...cinc.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;
>> +
>> + switch (freq) {
> Maybe you can use here the UNIPRO_CORE_CLK_FREQ_xx
The UNIPRO_CORE_CLK_FREQ_xx is used for "cycles_in_1us" which be handled
by ceil() function. It is not an exact frequency number and is not
appropriate for use here.
>
> Thanks,
> Avri
-Ziqi
>> + 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");
>> + break;
>> + }
>> +
>> + return ret;
>> +}
>> +
>> /*
>> * struct ufs_hba_qcom_vops - UFS QCOM specific variant operations
>> *
>> @@ -1833,6 +1864,7 @@ static const struct ufs_hba_variant_ops
>> ufs_hba_qcom_vops = {
>> .op_runtime_config = ufs_qcom_op_runtime_config,
>> .get_outstanding_cqs = ufs_qcom_get_outstanding_cqs,
>> .config_esi = ufs_qcom_config_esi,
>> + .freq_to_gear_speed = ufs_qcom_freq_to_gear_speed,
>> };
>>
>> /**
>> --
>> 2.34.1
>
Powered by blists - more mailing lists