lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <57d52f72-31ec-46cf-b632-74b09e29f501@quicinc.com>
Date: Mon, 20 Jan 2025 20:01:03 +0800
From: Ziqi Chen <quic_ziqichen@...cinc.com>
To: Manivannan Sadhasivam <mani@...nel.org>
CC: <quic_cang@...cinc.com>, <bvanassche@....org>, <beanhuo@...ron.com>,
        <avri.altman@....com>, <junwoo80.lee@...sung.com>,
        <martin.petersen@...cle.com>, <quic_nguyenb@...cinc.com>,
        <quic_nitirawa@...cinc.com>, <quic_rampraka@...cinc.com>,
        <linux-scsi@...r.kernel.org>, Alim Akhtar <alim.akhtar@...sung.com>,
        "James
 E.J. Bottomley" <James.Bottomley@...senPartnership.com>,
        Peter Wang
	<peter.wang@...iatek.com>,
        Stanley Jhu <chu.stanley@...il.com>,
        "Manivannan
 Sadhasivam" <manivannan.sadhasivam@...aro.org>,
        Matthias Brugger
	<matthias.bgg@...il.com>,
        AngeloGioacchino Del Regno
	<angelogioacchino.delregno@...labora.com>,
        Andrew Halaney
	<ahalaney@...hat.com>,
        Maramaina Naresh <quic_mnaresh@...cinc.com>,
        "Eric
 Biggers" <ebiggers@...gle.com>,
        Minwoo Im <minwoo.im@...sung.com>,
        open list
	<linux-kernel@...r.kernel.org>,
        "moderated list:UNIVERSAL FLASH STORAGE HOST
 CONTROLLER DRIVER..." <linux-mediatek@...ts.infradead.org>,
        "open
 list:UNIVERSAL FLASH STORAGE HOST CONTROLLER DRIVER..."
	<linux-arm-msm@...r.kernel.org>,
        "moderated list:ARM/Mediatek SoC
 support:Keyword:mediatek" <linux-arm-kernel@...ts.infradead.org>
Subject: Re: [PATCH 1/8] scsi: ufs: core: Pass target_freq to
 clk_scale_notify() vops

Hi Mani,

Thanks for you review~

On 1/19/2025 3:11 PM, Manivannan Sadhasivam wrote:
> On Thu, Jan 16, 2025 at 05:11:42PM +0800, Ziqi Chen wrote:
>> From: Can Guo <quic_cang@...cinc.com>
>>
>> If OPP V2 is used, devfreq clock scaling may scale clock amongst more than
>> two freqs,
> 
> 'amongst more than two freqs': I couldn't parse this.
>

It means that the devfreq framework will tell UFS core driver the 
devfreq freq, then UFS core driver will find the recommended freq from 
our freq table based on the devfreq freq. For legacy mode , we can only 
have 2 frequencies in the table. But if the OPP V2 is used, we can have 
3 , 4 or more freq tables. You can refer to my PATCH 8/8.

>> so just passing up/down to vops clk_scale_notify() is not enough
>> to cover the intermediate clock freqs between the min and max freqs. Hence
>> pass the target_freq to clk_scale_notify() to allow the vops to perform
>> corresponding configurations with regard to the clock freqs.
>>
> 
> Add a note that the 'target_freq' is not used in this commit.
>

Sorry, I don't very understand this comment, I mentioned the 
"target_freq" in the commit message,  Could you let me know what note 
you want me do add?

>> 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>
> 
> Signed-off-by tag order is not correct here. This implies that Ziqi originally
> worked on it, then Can took over and submitted. But it seems the reverse.

Thanks for your reminder. Is below tag order OK ?
     Signed-off-by: Can Guo <quic_cang@...cinc.com>
     Co-developed-by: Ziqi Chen <quic_ziqichen@...cinc.com>
     Signed-off-by: Ziqi Chen <quic_ziqichen@...cinc.com>
> 
> - Mani

-Ziqi

> 
>> ---
>>   drivers/ufs/core/ufshcd-priv.h  | 7 ++++---
>>   drivers/ufs/core/ufshcd.c       | 4 ++--
>>   drivers/ufs/host/ufs-mediatek.c | 1 +
>>   drivers/ufs/host/ufs-qcom.c     | 5 +++--
>>   include/ufs/ufshcd.h            | 2 +-
>>   5 files changed, 11 insertions(+), 8 deletions(-)
>>
>> diff --git a/drivers/ufs/core/ufshcd-priv.h b/drivers/ufs/core/ufshcd-priv.h
>> index 9ffd94ddf8c7..0549b65f71ed 100644
>> --- a/drivers/ufs/core/ufshcd-priv.h
>> +++ b/drivers/ufs/core/ufshcd-priv.h
>> @@ -117,11 +117,12 @@ static inline u32 ufshcd_vops_get_ufs_hci_version(struct ufs_hba *hba)
>>   	return ufshcd_readl(hba, REG_UFS_VERSION);
>>   }
>>   
>> -static inline int ufshcd_vops_clk_scale_notify(struct ufs_hba *hba,
>> -			bool up, enum ufs_notify_change_status status)
>> +static inline int ufshcd_vops_clk_scale_notify(struct ufs_hba *hba, bool up,
>> +					       unsigned long target_freq,
>> +					       enum ufs_notify_change_status status)
>>   {
>>   	if (hba->vops && hba->vops->clk_scale_notify)
>> -		return hba->vops->clk_scale_notify(hba, up, status);
>> +		return hba->vops->clk_scale_notify(hba, up, target_freq, status);
>>   	return 0;
>>   }
>>   
>> diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c
>> index acc3607bbd9c..8d295cc827cc 100644
>> --- a/drivers/ufs/core/ufshcd.c
>> +++ b/drivers/ufs/core/ufshcd.c
>> @@ -1157,7 +1157,7 @@ static int ufshcd_scale_clks(struct ufs_hba *hba, unsigned long freq,
>>   	int ret = 0;
>>   	ktime_t start = ktime_get();
>>   
>> -	ret = ufshcd_vops_clk_scale_notify(hba, scale_up, PRE_CHANGE);
>> +	ret = ufshcd_vops_clk_scale_notify(hba, scale_up, freq, PRE_CHANGE);
>>   	if (ret)
>>   		goto out;
>>   
>> @@ -1168,7 +1168,7 @@ static int ufshcd_scale_clks(struct ufs_hba *hba, unsigned long freq,
>>   	if (ret)
>>   		goto out;
>>   
>> -	ret = ufshcd_vops_clk_scale_notify(hba, scale_up, POST_CHANGE);
>> +	ret = ufshcd_vops_clk_scale_notify(hba, scale_up, freq, POST_CHANGE);
>>   	if (ret) {
>>   		if (hba->use_pm_opp)
>>   			ufshcd_opp_set_rate(hba,
>> diff --git a/drivers/ufs/host/ufs-mediatek.c b/drivers/ufs/host/ufs-mediatek.c
>> index 135cd78109e2..977dd0caaef6 100644
>> --- a/drivers/ufs/host/ufs-mediatek.c
>> +++ b/drivers/ufs/host/ufs-mediatek.c
>> @@ -1643,6 +1643,7 @@ static void ufs_mtk_clk_scale(struct ufs_hba *hba, bool scale_up)
>>   }
>>   
>>   static int ufs_mtk_clk_scale_notify(struct ufs_hba *hba, bool scale_up,
>> +				    unsigned long target_freq,
>>   				    enum ufs_notify_change_status status)
>>   {
>>   	if (!ufshcd_is_clkscaling_supported(hba))
>> diff --git a/drivers/ufs/host/ufs-qcom.c b/drivers/ufs/host/ufs-qcom.c
>> index 68040b2ab5f8..b6eef975dc46 100644
>> --- a/drivers/ufs/host/ufs-qcom.c
>> +++ b/drivers/ufs/host/ufs-qcom.c
>> @@ -1333,8 +1333,9 @@ static int ufs_qcom_clk_scale_down_post_change(struct ufs_hba *hba)
>>   	return ufs_qcom_set_core_clk_ctrl(hba, false);
>>   }
>>   
>> -static int ufs_qcom_clk_scale_notify(struct ufs_hba *hba,
>> -		bool scale_up, enum ufs_notify_change_status status)
>> +static int ufs_qcom_clk_scale_notify(struct ufs_hba *hba, bool scale_up,
>> +				     unsigned long target_freq,
>> +				     enum ufs_notify_change_status status)
>>   {
>>   	struct ufs_qcom_host *host = ufshcd_get_variant(hba);
>>   	int err;
>> diff --git a/include/ufs/ufshcd.h b/include/ufs/ufshcd.h
>> index d7aca9e61684..a4dac897a169 100644
>> --- a/include/ufs/ufshcd.h
>> +++ b/include/ufs/ufshcd.h
>> @@ -344,7 +344,7 @@ struct ufs_hba_variant_ops {
>>   	void    (*exit)(struct ufs_hba *);
>>   	u32	(*get_ufs_hci_version)(struct ufs_hba *);
>>   	int	(*set_dma_mask)(struct ufs_hba *);
>> -	int	(*clk_scale_notify)(struct ufs_hba *, bool,
>> +	int (*clk_scale_notify)(struct ufs_hba *, bool, unsigned long,
>>   				    enum ufs_notify_change_status);
>>   	int	(*setup_clocks)(struct ufs_hba *, bool,
>>   				enum ufs_notify_change_status);
>> -- 
>> 2.34.1
>>
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ