Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e56a727b authored by Venkatesh Pallipadi's avatar Venkatesh Pallipadi Committed by Dave Jones
Browse files

[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: default avatarVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: default avatarThomas Renninger <trenn@suse.de>
Signed-off-by: default avatarDave Jones <davej@redhat.com>
parent c938ac21
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -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);
	unsigned int freq;
	unsigned int cached_freq;

	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;
	}

	cached_freq = data->freq_table[data->acpi_data->state].frequency;
	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);

	return freq;