lkml.org 
[lkml]   [2021]   [Nov]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v4 11/22] cpufreq: amd: add amd-pstate frequencies attributes
    Date
    Introduce sysfs attributes to get the different level processor
    frequencies.

    Signed-off-by: Huang Rui <ray.huang@amd.com>
    ---
    drivers/cpufreq/amd-pstate.c | 46 ++++++++++++++++++++++++++++++++++++
    1 file changed, 46 insertions(+)

    diff --git a/drivers/cpufreq/amd-pstate.c b/drivers/cpufreq/amd-pstate.c
    index 0c335a917307..09c5fd8bd9da 100644
    --- a/drivers/cpufreq/amd-pstate.c
    +++ b/drivers/cpufreq/amd-pstate.c
    @@ -476,6 +476,51 @@ static int amd_pstate_cpu_exit(struct cpufreq_policy *policy)
    return 0;
    }

    +/* Sysfs attributes */
    +
    +/* This frequency is to indicate the maximum hardware frequency.
    + * If boost is not active but supported, the frequency will be larger than the
    + * one in cpuinfo.
    + */
    +static ssize_t show_amd_pstate_max_freq(struct cpufreq_policy *policy,
    + char *buf)
    +{
    + int max_freq;
    + struct amd_cpudata *cpudata;
    +
    + cpudata = policy->driver_data;
    +
    + max_freq = amd_get_max_freq(cpudata);
    + if (max_freq < 0)
    + return max_freq;
    +
    + return sprintf(&buf[0], "%u\n", max_freq);
    +}
    +
    +static ssize_t show_amd_pstate_lowest_nonlinear_freq(struct cpufreq_policy *policy,
    + char *buf)
    +{
    + int freq;
    + struct amd_cpudata *cpudata;
    +
    + cpudata = policy->driver_data;
    +
    + freq = amd_get_lowest_nonlinear_freq(cpudata);
    + if (freq < 0)
    + return freq;
    +
    + return sprintf(&buf[0], "%u\n", freq);
    +}
    +
    +cpufreq_freq_attr_ro(amd_pstate_max_freq);
    +cpufreq_freq_attr_ro(amd_pstate_lowest_nonlinear_freq);
    +
    +static struct freq_attr *amd_pstate_attr[] = {
    + &amd_pstate_max_freq,
    + &amd_pstate_lowest_nonlinear_freq,
    + NULL,
    +};
    +
    static struct cpufreq_driver amd_pstate_driver = {
    .flags = CPUFREQ_CONST_LOOPS | CPUFREQ_NEED_UPDATE_LIMITS,
    .verify = amd_pstate_verify,
    @@ -484,6 +529,7 @@ static struct cpufreq_driver amd_pstate_driver = {
    .exit = amd_pstate_cpu_exit,
    .set_boost = amd_pstate_set_boost,
    .name = "amd-pstate",
    + .attr = amd_pstate_attr,
    };

    static int __init amd_pstate_init(void)
    --
    2.25.1
    \
     
     \ /
      Last update: 2021-11-19 11:32    [W:4.044 / U:0.948 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site