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 = {
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)
return -ENODEV;
return cpufreq_register_driver(&powernow_driver);
......
......@@ -511,6 +511,14 @@ static __init int exploding_pnp_bios(struct dmi_blacklist *d)
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[]={
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, }
};
......
......@@ -444,5 +444,6 @@ extern int is_sony_vaio_laptop;
#define BROKEN_ACPI_Sx 0x0001
#define BROKEN_INIT_AFTER_S1 0x0002
#define BROKEN_PNP_BIOS 0x0004
#define BROKEN_CPUFREQ 0x0008
#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