Commit 482861fa authored by Dave Jones's avatar Dave Jones Committed by Dave Jones

[CPUFREQ] Add support for Pentium M (Dothan) processors for p4-clockmod.

But warn loudly if anyone tries to use it -- you really should use speedstep-centrino
instead. On Dothans, the TSC is _not_ affected by TSC transitions (contrary
to Banias processors), so set the CPUFREQ_CONST_LOOPS flag.
                                                                                
Many thanks to Thomas Renninger for reporting the lack of, and testing
the support for Dothan processors.
parent 6f6d1936
...@@ -181,7 +181,7 @@ static int cpufreq_p4_verify(struct cpufreq_policy *policy) ...@@ -181,7 +181,7 @@ static int cpufreq_p4_verify(struct cpufreq_policy *policy)
static unsigned int cpufreq_p4_get_frequency(struct cpuinfo_x86 *c) static unsigned int cpufreq_p4_get_frequency(struct cpuinfo_x86 *c)
{ {
if ((c->x86 == 0x06) && (c->x86_model == 0x09)) { if ((c->x86 == 0x06) && (c->x86_model == 0x09)) {
/* Pentium M */ /* Pentium M (Banias) */
printk(KERN_WARNING PFX "Warning: Pentium M detected. " printk(KERN_WARNING PFX "Warning: Pentium M detected. "
"The speedstep_centrino module offers voltage scaling" "The speedstep_centrino module offers voltage scaling"
" in addition of frequency scaling. You should use " " in addition of frequency scaling. You should use "
...@@ -189,6 +189,18 @@ static unsigned int cpufreq_p4_get_frequency(struct cpuinfo_x86 *c) ...@@ -189,6 +189,18 @@ static unsigned int cpufreq_p4_get_frequency(struct cpuinfo_x86 *c)
return speedstep_get_processor_frequency(SPEEDSTEP_PROCESSOR_PM); return speedstep_get_processor_frequency(SPEEDSTEP_PROCESSOR_PM);
} }
if ((c->x86 == 0x06) && (c->x86_model == 0x13)) {
/* Pentium M (Dothan) */
printk(KERN_WARNING PFX "Warning: Pentium M detected. "
"The speedstep_centrino module offers voltage scaling"
" in addition of frequency scaling. You should use "
"that instead of p4-clockmod, if possible.\n");
/* on P-4s, the TSC runs with constant frequency independent wether
* throttling is active or not. */
p4clockmod_driver.flags |= CPUFREQ_CONST_LOOPS;
return speedstep_get_processor_frequency(SPEEDSTEP_PROCESSOR_PM);
}
if (c->x86 != 0xF) { if (c->x86 != 0xF) {
printk(KERN_WARNING PFX "Unknown p4-clockmod-capable CPU. Please send an e-mail to <linux@brodo.de>\n"); printk(KERN_WARNING PFX "Unknown p4-clockmod-capable CPU. Please send an e-mail to <linux@brodo.de>\n");
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment