Commit df5cd135 authored by Dave Jones's avatar Dave Jones

Merge delerium.kernelslacker.org:/home/davej/bk/bk-linus

into delerium.kernelslacker.org:/home/davej/bk/cpufreq
parents e4611fb1 ba7c92ff
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
#define PFX "powernow-k8: " #define PFX "powernow-k8: "
#define BFX PFX "BIOS error: " #define BFX PFX "BIOS error: "
#define VERSION "version 1.00.09b" #define VERSION "version 1.00.09e"
#include "powernow-k8.h" #include "powernow-k8.h"
/* serialize freq changes */ /* serialize freq changes */
...@@ -596,6 +596,8 @@ static int find_psb_table(struct powernow_k8_data *data) ...@@ -596,6 +596,8 @@ static int find_psb_table(struct powernow_k8_data *data)
unsigned int i; unsigned int i;
u32 mvs; u32 mvs;
u8 maxvid; u8 maxvid;
u32 cpst = 0;
u32 thiscpuid;
for (i = 0xc0000; i < 0xffff0; i += 0x10) { for (i = 0xc0000; i < 0xffff0; i += 0x10) {
/* Scan BIOS looking for the signature. */ /* Scan BIOS looking for the signature. */
...@@ -634,7 +636,14 @@ static int find_psb_table(struct powernow_k8_data *data) ...@@ -634,7 +636,14 @@ static int find_psb_table(struct powernow_k8_data *data)
dprintk(KERN_INFO PFX "maximum voltage step: %d - 0x%x\n", mvs, data->vidmvs); dprintk(KERN_INFO PFX "maximum voltage step: %d - 0x%x\n", mvs, data->vidmvs);
dprintk(KERN_DEBUG PFX "numpst: 0x%x\n", psb->numpst); dprintk(KERN_DEBUG PFX "numpst: 0x%x\n", psb->numpst);
if (psb->numpst != 1) { cpst = psb->numpst;
if ((psb->cpuid == 0x00000fc0) || (psb->cpuid == 0x00000fe0) ){
thiscpuid = cpuid_eax(CPUID_PROCESSOR_SIGNATURE);
if ((thiscpuid == 0x00000fc0) || (thiscpuid == 0x00000fe0) ) {
cpst = 1;
}
}
if (cpst != 1) {
printk(KERN_ERR BFX "numpst must be 1\n"); printk(KERN_ERR BFX "numpst must be 1\n");
return -ENODEV; return -ENODEV;
} }
......
...@@ -260,12 +260,6 @@ static int speedstep_cpu_init(struct cpufreq_policy *policy) ...@@ -260,12 +260,6 @@ static int speedstep_cpu_init(struct cpufreq_policy *policy)
if (result) { if (result) {
/* fall back to speedstep_lib.c dection mechanism: try both states out */ /* fall back to speedstep_lib.c dection mechanism: try both states out */
dprintk(KERN_INFO PFX "could not detect low and high frequencies by SMI call.\n"); dprintk(KERN_INFO PFX "could not detect low and high frequencies by SMI call.\n");
if (!speedstep_processor)
speedstep_processor = speedstep_detect_processor();
if (!speedstep_processor)
return -ENODEV;
result = speedstep_get_freqs(speedstep_processor, result = speedstep_get_freqs(speedstep_processor,
&speedstep_freqs[SPEEDSTEP_LOW].frequency, &speedstep_freqs[SPEEDSTEP_LOW].frequency,
&speedstep_freqs[SPEEDSTEP_HIGH].frequency, &speedstep_freqs[SPEEDSTEP_HIGH].frequency,
...@@ -310,10 +304,6 @@ static unsigned int speedstep_get(unsigned int cpu) ...@@ -310,10 +304,6 @@ static unsigned int speedstep_get(unsigned int cpu)
{ {
if (cpu) if (cpu)
return -ENODEV; return -ENODEV;
if (!speedstep_processor)
speedstep_processor = speedstep_detect_processor();
if (!speedstep_processor)
return 0;
return speedstep_get_processor_frequency(speedstep_processor); return speedstep_get_processor_frequency(speedstep_processor);
} }
...@@ -354,10 +344,19 @@ static struct cpufreq_driver speedstep_driver = { ...@@ -354,10 +344,19 @@ static struct cpufreq_driver speedstep_driver = {
*/ */
static int __init speedstep_init(void) static int __init speedstep_init(void)
{ {
struct cpuinfo_x86 *c = cpu_data; speedstep_processor = speedstep_detect_processor();
switch (speedstep_processor) {
case SPEEDSTEP_PROCESSOR_PIII_T:
case SPEEDSTEP_PROCESSOR_PIII_C:
case SPEEDSTEP_PROCESSOR_PIII_C_EARLY:
break;
default:
speedstep_processor = 0;
}
if (c->x86_vendor != X86_VENDOR_INTEL) { if (!speedstep_processor) {
printk (KERN_INFO PFX "No Intel CPU detected.\n"); dprintk (KERN_INFO PFX "No supported Intel CPU detected.\n");
return -ENODEV; return -ENODEV;
} }
......
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