]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
cpufreq/amd-pstate-ut: Convert nominal_freq to khz during comparisons
authorDhananjay Ugwekar <Dhananjay.Ugwekar@amd.com>
Tue, 2 Jul 2024 08:14:13 +0000 (08:14 +0000)
committerMario Limonciello <mario.limonciello@amd.com>
Sun, 7 Jul 2024 15:32:31 +0000 (10:32 -0500)
cpudata->nominal_freq being in MHz whereas other frequencies being in
KHz breaks the amd-pstate-ut frequency sanity check. This fixes it.

Fixes: e4731baaf294 ("cpufreq: amd-pstate: Fix the inconsistency in max frequency units")
Reported-by: David Arcari <darcari@redhat.com>
Signed-off-by: Dhananjay Ugwekar <Dhananjay.Ugwekar@amd.com>
Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
Reviewed-by: Gautham R. Shenoy <gautham.shenoy@amd.com>
Link: https://lore.kernel.org/r/20240702081413.5688-2-Dhananjay.Ugwekar@amd.com
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
drivers/cpufreq/amd-pstate-ut.c

index fc275d41d51e9b51a93ccc26f36e5592c4228d60..66b73c308ce67292f99fa2fb5697a50d831db397 100644 (file)
@@ -202,6 +202,7 @@ static void amd_pstate_ut_check_freq(u32 index)
        int cpu = 0;
        struct cpufreq_policy *policy = NULL;
        struct amd_cpudata *cpudata = NULL;
+       u32 nominal_freq_khz;
 
        for_each_possible_cpu(cpu) {
                policy = cpufreq_cpu_get(cpu);
@@ -209,13 +210,14 @@ static void amd_pstate_ut_check_freq(u32 index)
                        break;
                cpudata = policy->driver_data;
 
-               if (!((cpudata->max_freq >= cpudata->nominal_freq) &&
-                       (cpudata->nominal_freq > cpudata->lowest_nonlinear_freq) &&
+               nominal_freq_khz = cpudata->nominal_freq*1000;
+               if (!((cpudata->max_freq >= nominal_freq_khz) &&
+                       (nominal_freq_khz > cpudata->lowest_nonlinear_freq) &&
                        (cpudata->lowest_nonlinear_freq > cpudata->min_freq) &&
                        (cpudata->min_freq > 0))) {
                        amd_pstate_ut_cases[index].result = AMD_PSTATE_UT_RESULT_FAIL;
                        pr_err("%s cpu%d max=%d >= nominal=%d > lowest_nonlinear=%d > min=%d > 0, the formula is incorrect!\n",
-                               __func__, cpu, cpudata->max_freq, cpudata->nominal_freq,
+                               __func__, cpu, cpudata->max_freq, nominal_freq_khz,
                                cpudata->lowest_nonlinear_freq, cpudata->min_freq);
                        goto skip_test;
                }
@@ -229,13 +231,13 @@ static void amd_pstate_ut_check_freq(u32 index)
 
                if (cpudata->boost_supported) {
                        if ((policy->max == cpudata->max_freq) ||
-                                       (policy->max == cpudata->nominal_freq))
+                                       (policy->max == nominal_freq_khz))
                                amd_pstate_ut_cases[index].result = AMD_PSTATE_UT_RESULT_PASS;
                        else {
                                amd_pstate_ut_cases[index].result = AMD_PSTATE_UT_RESULT_FAIL;
                                pr_err("%s cpu%d policy_max=%d should be equal cpu_max=%d or cpu_nominal=%d !\n",
                                        __func__, cpu, policy->max, cpudata->max_freq,
-                                       cpudata->nominal_freq);
+                                       nominal_freq_khz);
                                goto skip_test;
                        }
                } else {