diff mbox series

[1/2] cpufreq: Change macro for store scaling min/max frequency

Message ID 20220930094821.31665-1-lukasz.luba@arm.com
State New
Headers show
Series [1/2] cpufreq: Change macro for store scaling min/max frequency | expand

Commit Message

Lukasz Luba Sept. 30, 2022, 9:48 a.m. UTC
In order to prepare extension to the store_scaling_max_freq() remove
the macro and use two normal functions. The set value for max frequency
is important for the task scheduler.

Signed-off-by: Lukasz Luba <lukasz.luba@arm.com>
---
 drivers/cpufreq/cpufreq.c | 47 ++++++++++++++++++++++-----------------
 1 file changed, 27 insertions(+), 20 deletions(-)

Comments

Viresh Kumar Oct. 10, 2022, 5:36 a.m. UTC | #1
On 30-09-22, 10:48, Lukasz Luba wrote:
> In order to prepare extension to the store_scaling_max_freq() remove
> the macro and use two normal functions. The set value for max frequency
> is important for the task scheduler.
> 
> Signed-off-by: Lukasz Luba <lukasz.luba@arm.com>
> ---
>  drivers/cpufreq/cpufreq.c | 47 ++++++++++++++++++++++-----------------
>  1 file changed, 27 insertions(+), 20 deletions(-)
> 
> diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
> index 69b3d61852ac..1f8b93f42c76 100644
> --- a/drivers/cpufreq/cpufreq.c
> +++ b/drivers/cpufreq/cpufreq.c
> @@ -715,26 +715,33 @@ static ssize_t show_scaling_cur_freq(struct cpufreq_policy *policy, char *buf)
>  	return ret;
>  }
>  
> -/*
> - * cpufreq_per_cpu_attr_write() / store_##file_name() - sysfs write access
> - */
> -#define store_one(file_name, object)			\
> -static ssize_t store_##file_name					\
> -(struct cpufreq_policy *policy, const char *buf, size_t count)		\
> -{									\
> -	unsigned long val;						\
> -	int ret;							\
> -									\
> -	ret = sscanf(buf, "%lu", &val);					\
> -	if (ret != 1)							\
> -		return -EINVAL;						\
> -									\
> -	ret = freq_qos_update_request(policy->object##_freq_req, val);\
> -	return ret >= 0 ? count : ret;					\
> -}
> -
> -store_one(scaling_min_freq, min);
> -store_one(scaling_max_freq, max);
> +static ssize_t store_scaling_max_freq
> +(struct cpufreq_policy *policy, const char *buf, size_t count)

I thought we can't break right after function's name according to
kernel's coding guidelines. Did you run checkpatch on this ?

> +{
> +	unsigned long val;
> +	int ret;
> +
> +	ret = sscanf(buf, "%lu", &val);
> +	if (ret != 1)
> +		return -EINVAL;
> +
> +	ret = freq_qos_update_request(policy->max_freq_req, val);
> +	return ret >= 0 ? count : ret;
> +}
> +
> +static ssize_t store_scaling_min_freq
> +(struct cpufreq_policy *policy, const char *buf, size_t count)
> +{
> +	unsigned long val;
> +	int ret;
> +
> +	ret = sscanf(buf, "%lu", &val);
> +	if (ret != 1)
> +		return -EINVAL;
> +
> +	ret = freq_qos_update_request(policy->min_freq_req, val);
> +	return ret >= 0 ? count : ret;
> +}
>  
>  /*
>   * show_cpuinfo_cur_freq - current CPU frequency as detected by hardware
> -- 
> 2.17.1
Lukasz Luba Oct. 10, 2022, 8:49 a.m. UTC | #2
Hi Viresh,


On 10/10/22 06:36, Viresh Kumar wrote:
> On 30-09-22, 10:48, Lukasz Luba wrote:
>> In order to prepare extension to the store_scaling_max_freq() remove
>> the macro and use two normal functions. The set value for max frequency
>> is important for the task scheduler.
>>
>> Signed-off-by: Lukasz Luba <lukasz.luba@arm.com>
>> ---
>>   drivers/cpufreq/cpufreq.c | 47 ++++++++++++++++++++++-----------------
>>   1 file changed, 27 insertions(+), 20 deletions(-)
>>
>> diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
>> index 69b3d61852ac..1f8b93f42c76 100644
>> --- a/drivers/cpufreq/cpufreq.c
>> +++ b/drivers/cpufreq/cpufreq.c
>> @@ -715,26 +715,33 @@ static ssize_t show_scaling_cur_freq(struct cpufreq_policy *policy, char *buf)
>>   	return ret;
>>   }
>>   
>> -/*
>> - * cpufreq_per_cpu_attr_write() / store_##file_name() - sysfs write access
>> - */
>> -#define store_one(file_name, object)			\
>> -static ssize_t store_##file_name					\
>> -(struct cpufreq_policy *policy, const char *buf, size_t count)		\
>> -{									\
>> -	unsigned long val;						\
>> -	int ret;							\
>> -									\
>> -	ret = sscanf(buf, "%lu", &val);					\
>> -	if (ret != 1)							\
>> -		return -EINVAL;						\
>> -									\
>> -	ret = freq_qos_update_request(policy->object##_freq_req, val);\
>> -	return ret >= 0 ? count : ret;					\
>> -}
>> -
>> -store_one(scaling_min_freq, min);
>> -store_one(scaling_max_freq, max);
>> +static ssize_t store_scaling_max_freq
>> +(struct cpufreq_policy *policy, const char *buf, size_t count)
> 
> I thought we can't break right after function's name according to
> kernel's coding guidelines. Did you run checkpatch on this ?

The checkpatch didn't capture this, but you are right. I'll change this.

-----------------------------------------------
/tmp/cpufreq//0001-cpufreq-Change-macro-for-store-scaling-min-max-frequ.patch
WARNING: Prefer kstrto<type> to single variable sscanf
#49: FILE: drivers/cpufreq/cpufreq.c:724:
+	ret = sscanf(buf, "%lu", &val);

WARNING: Prefer kstrto<type> to single variable sscanf
#63: FILE: drivers/cpufreq/cpufreq.c:738:
+	ret = sscanf(buf, "%lu", &val);

total: 0 errors, 2 warnings, 53 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
       mechanically convert to the typical style using --fix or 
--fix-inplace.

/tmp/cpufreq//0001-cpufreq-Change-macro-for-store-scaling-min-max-frequ.patch 
has style problems, please review.

NOTE: If any of the errors are false positives, please report
       them to the maintainer, see CHECKPATCH in MAINTAINERS.
==============================================================
/tmp/cpufreq//0002-cpufreq-Update-CPU-capacity-reduction-in-store_scali.patch
total: 0 errors, 0 warnings, 36 lines checked

/tmp/cpufreq//0002-cpufreq-Update-CPU-capacity-reduction-in-store_scali.patch 
has no obvious style problems and is ready for submission.
==============================================================

-----------------------------------------------
diff mbox series

Patch

diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
index 69b3d61852ac..1f8b93f42c76 100644
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -715,26 +715,33 @@  static ssize_t show_scaling_cur_freq(struct cpufreq_policy *policy, char *buf)
 	return ret;
 }
 
-/*
- * cpufreq_per_cpu_attr_write() / store_##file_name() - sysfs write access
- */
-#define store_one(file_name, object)			\
-static ssize_t store_##file_name					\
-(struct cpufreq_policy *policy, const char *buf, size_t count)		\
-{									\
-	unsigned long val;						\
-	int ret;							\
-									\
-	ret = sscanf(buf, "%lu", &val);					\
-	if (ret != 1)							\
-		return -EINVAL;						\
-									\
-	ret = freq_qos_update_request(policy->object##_freq_req, val);\
-	return ret >= 0 ? count : ret;					\
-}
-
-store_one(scaling_min_freq, min);
-store_one(scaling_max_freq, max);
+static ssize_t store_scaling_max_freq
+(struct cpufreq_policy *policy, const char *buf, size_t count)
+{
+	unsigned long val;
+	int ret;
+
+	ret = sscanf(buf, "%lu", &val);
+	if (ret != 1)
+		return -EINVAL;
+
+	ret = freq_qos_update_request(policy->max_freq_req, val);
+	return ret >= 0 ? count : ret;
+}
+
+static ssize_t store_scaling_min_freq
+(struct cpufreq_policy *policy, const char *buf, size_t count)
+{
+	unsigned long val;
+	int ret;
+
+	ret = sscanf(buf, "%lu", &val);
+	if (ret != 1)
+		return -EINVAL;
+
+	ret = freq_qos_update_request(policy->min_freq_req, val);
+	return ret >= 0 ? count : ret;
+}
 
 /*
  * show_cpuinfo_cur_freq - current CPU frequency as detected by hardware