Commit d837eca1 authored by Dave Jones's avatar Dave Jones

[CPUFREQ] Acer Aspire's have broken PST tables in one BIOS rev. DMI blacklist it.

parent 09ece1af
...@@ -390,6 +390,10 @@ static struct cpufreq_driver powernow_driver = { ...@@ -390,6 +390,10 @@ static struct cpufreq_driver powernow_driver = {
static int __init powernow_init (void) static int __init powernow_init (void)
{ {
if (dmi_broken & BROKEN_CPUFREQ) {
printk (KERN_INFO PFX "Disabled at boot time by DMI,\n");
return -ENODEV;
}
if (check_powernow()==0) if (check_powernow()==0)
return -ENODEV; return -ENODEV;
return cpufreq_register_driver(&powernow_driver); return cpufreq_register_driver(&powernow_driver);
......
...@@ -511,6 +511,14 @@ static __init int exploding_pnp_bios(struct dmi_blacklist *d) ...@@ -511,6 +511,14 @@ static __init int exploding_pnp_bios(struct dmi_blacklist *d)
return 0; return 0;
} }
static __init int acer_cpufreq_pst(struct dmi_blacklist *d)
{
printk(KERN_WARNING "%s laptop with broken PST tables in BIOS detected.\n", d->ident);
printk(KERN_WARNING "You need to downgrade to 3A21 (09/09/2002), or try a newer BIOS than 3A71 (01/20/2003)\n");
printk(KERN_WARNING "cpufreq scaling has been disabled as a result of this.\n");
dmi_broken |= BROKEN_CPUFREQ;
return 0;
}
/* /*
...@@ -825,6 +833,17 @@ static __initdata struct dmi_blacklist dmi_blacklist[]={ ...@@ -825,6 +833,17 @@ static __initdata struct dmi_blacklist dmi_blacklist[]={
NO_MATCH, NO_MATCH, NO_MATCH NO_MATCH, NO_MATCH, NO_MATCH
} }, } },
/*
* Some Athlon laptops have really fucked PST tables.
* A BIOS update is all that can save them.
* Mention this, and disable cpufreq.
*/
{ acer_cpufreq_pst, "Acer Aspire", {
MATCH(DMI_SYS_VENDOR, "Insyde Software"),
MATCH(DMI_BIOS_VERSION, "3A71"),
NO_MATCH, NO_MATCH, NO_MATCH
} },
{ NULL, } { NULL, }
}; };
......
...@@ -444,5 +444,6 @@ extern int is_sony_vaio_laptop; ...@@ -444,5 +444,6 @@ extern int is_sony_vaio_laptop;
#define BROKEN_ACPI_Sx 0x0001 #define BROKEN_ACPI_Sx 0x0001
#define BROKEN_INIT_AFTER_S1 0x0002 #define BROKEN_INIT_AFTER_S1 0x0002
#define BROKEN_PNP_BIOS 0x0004 #define BROKEN_PNP_BIOS 0x0004
#define BROKEN_CPUFREQ 0x0008
#endif #endif
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