Lines Matching +full:kernel +full:- +full:policy
1 // SPDX-License-Identifier: GPL-2.0-only
11 #include <linux/kernel.h>
15 #include <linux/percpu-defs.h>
39 static unsigned int amd_powersave_bias_target(struct cpufreq_policy *policy, in amd_powersave_bias_target() argument
46 struct cpu_data_t *data = &per_cpu(cpu_data, policy->cpu); in amd_powersave_bias_target()
47 struct policy_dbs_info *policy_dbs = policy->governor_data; in amd_powersave_bias_target()
48 struct dbs_data *od_data = policy_dbs->dbs_data; in amd_powersave_bias_target()
49 struct od_dbs_tuners *od_tuners = od_data->tuners; in amd_powersave_bias_target()
51 if (!policy->freq_table) in amd_powersave_bias_target()
54 rdmsr_on_cpu(policy->cpu, MSR_AMD64_FREQ_SENSITIVITY_ACTUAL, in amd_powersave_bias_target()
56 rdmsr_on_cpu(policy->cpu, MSR_AMD64_FREQ_SENSITIVITY_REFERENCE, in amd_powersave_bias_target()
62 if (actual.q < data->actual || reference.q < data->reference) { in amd_powersave_bias_target()
63 freq_next = policy->cur; in amd_powersave_bias_target()
67 d_actual = actual.q - data->actual; in amd_powersave_bias_target()
68 d_reference = reference.q - data->reference; in amd_powersave_bias_target()
72 freq_next = policy->cur; in amd_powersave_bias_target()
76 sensitivity = POWERSAVE_BIAS_MAX - in amd_powersave_bias_target()
77 (POWERSAVE_BIAS_MAX * (d_reference - d_actual) / d_reference); in amd_powersave_bias_target()
82 if (sensitivity < od_tuners->powersave_bias) { in amd_powersave_bias_target()
83 if (data->freq_prev == policy->cur) in amd_powersave_bias_target()
84 freq_next = policy->cur; in amd_powersave_bias_target()
86 if (freq_next > policy->cur) in amd_powersave_bias_target()
87 freq_next = policy->cur; in amd_powersave_bias_target()
88 else if (freq_next < policy->cur) in amd_powersave_bias_target()
89 freq_next = policy->min; in amd_powersave_bias_target()
93 index = cpufreq_table_find_index_h(policy, in amd_powersave_bias_target()
94 policy->cur - 1, in amd_powersave_bias_target()
96 freq_next = policy->freq_table[index].frequency; in amd_powersave_bias_target()
99 data->freq_prev = freq_next; in amd_powersave_bias_target()
101 data->freq_prev = 0; in amd_powersave_bias_target()
104 data->actual = actual.q; in amd_powersave_bias_target()
105 data->reference = reference.q; in amd_powersave_bias_target()
120 return -ENODEV; in amd_freq_sensitivity_init()
127 return -ENODEV; in amd_freq_sensitivity_init()
133 return -ENODEV; in amd_freq_sensitivity_init()
136 return -ENODEV; in amd_freq_sensitivity_init()