lkml.org 
[lkml]   [2021]   [Sep]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH 10/19] cpufreq: amd: add amd-pstate frequencies attributes
    From
    Date
    On 9/8/2021 9:59 AM, Huang Rui wrote:
    > Introduce sysfs attributes to get the different level processor
    > frequencies.
    >
    > Signed-off-by: Huang Rui <ray.huang@amd.com>
    > ---
    > drivers/cpufreq/amd-pstate.c | 80 +++++++++++++++++++++++++++++++++++-
    > 1 file changed, 79 insertions(+), 1 deletion(-)
    >
    > diff --git a/drivers/cpufreq/amd-pstate.c b/drivers/cpufreq/amd-pstate.c
    > index 48dedd5af101..3c727a22cb69 100644
    > --- a/drivers/cpufreq/amd-pstate.c
    > +++ b/drivers/cpufreq/amd-pstate.c
    > @@ -577,16 +577,94 @@ static int amd_pstate_cpu_exit(struct cpufreq_policy *policy)
    > return 0;
    > }
    >
    > -static ssize_t show_is_amd_pstate_enabled(struct cpufreq_policy *policy,
    > +/* Sysfs attributes */
    > +
    > +static ssize_t show_amd_pstate_max_freq(struct cpufreq_policy *policy,
    > char *buf)
    > +{
    > + int ret = 0, max_freq;
    > + struct amd_cpudata *cpudata;
    > +
    > + cpudata = policy->driver_data;
    > +
    > + max_freq = amd_get_max_freq(cpudata);
    > + if (max_freq < 0)
    > + return max_freq;
    > +
    > + ret += sprintf(&buf[ret], "%u\n", max_freq);
    > +
    > + return ret;

    Here, and in the functions below, you could just do

    return sprintf(&buf[ret], "%u\n", max_freq);

    and get rid of the intermediary 'ret' variable.

    -Nathan

    > +}
    > +
    > +static ssize_t show_amd_pstate_nominal_freq(struct cpufreq_policy *policy,
    > + char *buf)
    > +{
    > + int ret = 0, nominal_freq;
    > + struct amd_cpudata *cpudata;
    > +
    > + cpudata = policy->driver_data;
    > +
    > + nominal_freq = amd_get_nominal_freq(cpudata);
    > + if (nominal_freq < 0)
    > + return nominal_freq;
    > +
    > + ret += sprintf(&buf[ret], "%u\n", nominal_freq);
    > +
    > + return ret;
    > +}
    > +
    > +static ssize_t
    > +show_amd_pstate_lowest_nonlinear_freq(struct cpufreq_policy *policy, char *buf)
    > +{
    > + int ret = 0, freq;
    > + struct amd_cpudata *cpudata;
    > +
    > + cpudata = policy->driver_data;
    > +
    > + freq = amd_get_lowest_nonlinear_freq(cpudata);
    > + if (freq < 0)
    > + return freq;
    > +
    > + ret += sprintf(&buf[ret], "%u\n", freq);
    > +
    > + return ret;
    > +}
    > +
    > +static ssize_t show_amd_pstate_min_freq(struct cpufreq_policy *policy, char *buf)
    > +{
    > + int ret = 0;
    > + int freq;
    > + struct amd_cpudata *cpudata;
    > +
    > + cpudata = policy->driver_data;
    > +
    > + freq = amd_get_min_freq(cpudata);
    > + if (freq < 0)
    > + return freq;
    > +
    > + ret += sprintf(&buf[ret], "%u\n", freq);
    > +
    > + return ret;
    > +}
    > +
    > +static ssize_t show_is_amd_pstate_enabled(struct cpufreq_policy *policy,
    > + char *buf)
    > {
    > return sprintf(&buf[0], "%d\n", acpi_cpc_valid() ? 1 : 0);
    > }
    >
    > cpufreq_freq_attr_ro(is_amd_pstate_enabled);
    > +cpufreq_freq_attr_ro(amd_pstate_max_freq);
    > +cpufreq_freq_attr_ro(amd_pstate_nominal_freq);
    > +cpufreq_freq_attr_ro(amd_pstate_lowest_nonlinear_freq);
    > +cpufreq_freq_attr_ro(amd_pstate_min_freq);
    >
    > static struct freq_attr *amd_pstate_attr[] = {
    > &is_amd_pstate_enabled,
    > + &amd_pstate_max_freq,
    > + &amd_pstate_nominal_freq,
    > + &amd_pstate_lowest_nonlinear_freq,
    > + &amd_pstate_min_freq,
    > NULL,
    > };
    >
    > --
    > 2.25.1
    >

    \
     
     \ /
      Last update: 2021-09-08 20:14    [W:3.456 / U:0.088 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site