On Thursday 31 July 2008 23:35:35 Thomas Rosner wrote: > Sort the entries in the IBM R40e C2/C3-states blacklist and remove a > duplicate. Please apply. FWIW, the R40e can do c-state switching, but must use the RSDT instead of the XSDT. The patchseries (posted on linux-acpi a while ago): [PATCH 1/3] ACPICA: Add acpi_gbl_force_rsdt variable Re: [PATCH 2/3] Introduce acpi_root_table=rsdt boot param and dmi list to force rsdt [PATCH 3/3] Remove R40e c-state blacklist did introduce a switch to be able to load blacklisted machines to use the RSDT (only some rare specific T4x or T5x are known which need it) instead of the XSDT and moves the R40e blacklist to use the RSDT and thus enables c-states for these machines. The patch has not been taken: -------------------- Appropriate workaround for a distro release? Yes. Appropriate patch for upstream? No. Upstream should fix the root cause, which is to figure out when the RSDT and XSDT disagree, which Windows is using, and use that one. Littering upstream with DMI entries simply hides the test cases that we know about and delays the correct fix. -------------------- IMO it's time to repost above patchset and take it until the "root cause" is found. The blacklist should also just match: > - DMI_MATCH(DMI_BIOS_VENDOR,"IBM"), > - DMI_MATCH(DMI_BIOS_VERSION,"1SET")}, (void *)1}, all other entries can vanish. I can repost if people think that the root cause cannot be fixed for .27 anymore and above is considered as a workaround that should be taken for now. Thomas > Signed-off-by: Thomas Rosner <kernel-bugs@xxxxxxxxxxxxxxxxx> > CC: Len Brown <len.brown@xxxxxxxxx> > CC: Andie Kleen <ak@xxxxxxxxxxxxxxx> > --- > drivers/acpi/processor_idle.c | 9 +++------ > 1 files changed, 3 insertions(+), 6 deletions(-) > > diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c > index 556ee15..3e9f59d 100644 > --- a/drivers/acpi/processor_idle.c > +++ b/drivers/acpi/processor_idle.c > @@ -128,12 +128,6 @@ static int set_max_cstate(const struct dmi_system_id > *id) static struct dmi_system_id __cpuinitdata processor_power_dmi_table[] > = { { set_max_cstate, "IBM ThinkPad R40e", { > DMI_MATCH(DMI_BIOS_VENDOR,"IBM"), > - DMI_MATCH(DMI_BIOS_VERSION,"1SET70WW")}, (void *)1}, > - { set_max_cstate, "IBM ThinkPad R40e", { > - DMI_MATCH(DMI_BIOS_VENDOR,"IBM"), > - DMI_MATCH(DMI_BIOS_VERSION,"1SET60WW")}, (void *)1}, > - { set_max_cstate, "IBM ThinkPad R40e", { > - DMI_MATCH(DMI_BIOS_VENDOR,"IBM"), > DMI_MATCH(DMI_BIOS_VERSION,"1SET43WW") }, (void*)1}, > { set_max_cstate, "IBM ThinkPad R40e", { > DMI_MATCH(DMI_BIOS_VENDOR,"IBM"), > @@ -174,6 +168,9 @@ static struct dmi_system_id __cpuinitdata > processor_power_dmi_table[] = { { set_max_cstate, "IBM ThinkPad R40e", { > DMI_MATCH(DMI_BIOS_VENDOR,"IBM"), > DMI_MATCH(DMI_BIOS_VERSION,"1SET68WW") }, (void*)1}, > + { set_max_cstate, "IBM ThinkPad R40e", { > + DMI_MATCH(DMI_BIOS_VENDOR,"IBM"), > + DMI_MATCH(DMI_BIOS_VERSION,"1SET70WW")}, (void *)1}, > { set_max_cstate, "Medion 41700", { > DMI_MATCH(DMI_BIOS_VENDOR,"Phoenix Technologies LTD"), > DMI_MATCH(DMI_BIOS_VERSION,"R01-A1J")}, (void *)1}, -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html