mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-02-14 08:19:28 +00:00
[CPUFREQ] Make acpi-cpufreq more robust against BIOS freq changes behind our back.
We checked the hardware freq with OS cached freq value in get_cur_freqon_cpu(). Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> Signed-off-by: Thomas Renninger <trenn@suse.de> Signed-off-by: Dave Jones <davej@redhat.com>
This commit is contained in:
parent
c938ac2132
commit
e56a727b02
@ -339,6 +339,7 @@ static unsigned int get_cur_freq_on_cpu(unsigned int cpu)
|
|||||||
{
|
{
|
||||||
struct acpi_cpufreq_data *data = per_cpu(drv_data, cpu);
|
struct acpi_cpufreq_data *data = per_cpu(drv_data, cpu);
|
||||||
unsigned int freq;
|
unsigned int freq;
|
||||||
|
unsigned int cached_freq;
|
||||||
|
|
||||||
dprintk("get_cur_freq_on_cpu (%d)\n", cpu);
|
dprintk("get_cur_freq_on_cpu (%d)\n", cpu);
|
||||||
|
|
||||||
@ -347,7 +348,16 @@ static unsigned int get_cur_freq_on_cpu(unsigned int cpu)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cached_freq = data->freq_table[data->acpi_data->state].frequency;
|
||||||
freq = extract_freq(get_cur_val(&cpumask_of_cpu(cpu)), data);
|
freq = extract_freq(get_cur_val(&cpumask_of_cpu(cpu)), data);
|
||||||
|
if (freq != cached_freq) {
|
||||||
|
/*
|
||||||
|
* The dreaded BIOS frequency change behind our back.
|
||||||
|
* Force set the frequency on next target call.
|
||||||
|
*/
|
||||||
|
data->resume = 1;
|
||||||
|
}
|
||||||
|
|
||||||
dprintk("cur freq = %u\n", freq);
|
dprintk("cur freq = %u\n", freq);
|
||||||
|
|
||||||
return freq;
|
return freq;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user