On Wed, 2008-07-30 at 15:56 +0200, Thomas Renninger wrote: > This came in in OpenSUSE 10.3. When we still had overriden thermal polling > frequency (what we probably will do again soon). It has been tested that > specific ThinkPads do not throw a thermal event when exceeding the passive > trip point. Even thermal polling was not enough... > As no other solution has been found meanwhile and it seems Windows is also > using a virtual passive trip point: > [Bug 10658] thermal shutdown - Dell Precision M20, Latitude D610 > http://bugzilla.kernel.org/show_bug.cgi?id=10658 > it would be great to get this integrated into the mainline kernel. > > BTW, the patch from Matthew in above bug, will this in some way be > integerated mainline? Otherwise we'll have to maintain this one ourself. Matthew has a new patch series which implement this in the generic thermal sysfs driver, which looks good IMO. http://marc.info/?l=linux-acpi&m=121320356423139&w=2 will you review them? thanks, rui > > From: Thomas Renninger <trenn@xxxxxxx> > Subject: Avoid critical temp shutdowns on specific ThinkPad T4x(p) and R50p > References: https://bugzilla.novell.com/show_bug.cgi?id=333043 > > --- > drivers/acpi/thermal.c | 73 +++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 73 insertions(+) > > Index: linux-2.6.25-SL110_BRANCH/drivers/acpi/thermal.c > =================================================================== > --- linux-2.6.25-SL110_BRANCH.orig/drivers/acpi/thermal.c > +++ linux-2.6.25-SL110_BRANCH/drivers/acpi/thermal.c > @@ -42,6 +42,7 @@ > #include <linux/kmod.h> > #include <linux/seq_file.h> > #include <linux/reboot.h> > +#include <linux/dmi.h> > #include <asm/uaccess.h> > #include <linux/thermal.h> > #include <acpi/acpi_bus.h> > @@ -1576,6 +1577,66 @@ static int acpi_thermal_get_info(struct > return 0; > } > > +static struct dmi_system_id thermal_psv_dmi_table[] = { > + { > + .ident = "IBM ThinkPad T41", > + .matches = { > + DMI_MATCH(DMI_BIOS_VENDOR,"IBM"), > + DMI_MATCH(DMI_PRODUCT_VERSION,"ThinkPad T41"), > + }, > + }, > + { > + .ident = "IBM ThinkPad T42", > + .matches = { > + DMI_MATCH(DMI_BIOS_VENDOR,"IBM"), > + DMI_MATCH(DMI_PRODUCT_VERSION,"ThinkPad T42"), > + }, > + }, > + { > + .ident = "IBM ThinkPad T43", > + .matches = { > + DMI_MATCH(DMI_BIOS_VENDOR,"IBM"), > + DMI_MATCH(DMI_PRODUCT_VERSION,"ThinkPad T43"), > + }, > + }, > + { > + .ident = "IBM ThinkPad T41p", > + .matches = { > + DMI_MATCH(DMI_BIOS_VENDOR,"IBM"), > + DMI_MATCH(DMI_PRODUCT_VERSION,"ThinkPad T41p"), > + }, > + }, > + { > + .ident = "IBM ThinkPad T42p", > + .matches = { > + DMI_MATCH(DMI_BIOS_VENDOR,"IBM"), > + DMI_MATCH(DMI_PRODUCT_VERSION,"ThinkPad T42p"), > + }, > + }, > + { > + .ident = "IBM ThinkPad T43p", > + .matches = { > + DMI_MATCH(DMI_BIOS_VENDOR,"IBM"), > + DMI_MATCH(DMI_PRODUCT_VERSION,"ThinkPad T43p"), > + }, > + }, > + { > + .ident = "IBM ThinkPad R40", > + .matches = { > + DMI_MATCH(DMI_BIOS_VENDOR,"IBM"), > + DMI_MATCH(DMI_PRODUCT_VERSION,"ThinkPad R40"), > + }, > + }, > + { > + .ident = "IBM ThinkPad R50p", > + .matches = { > + DMI_MATCH(DMI_BIOS_VENDOR,"IBM"), > + DMI_MATCH(DMI_PRODUCT_VERSION,"ThinkPad R50p"), > + }, > + }, > + {}, > +}; > + > static int acpi_thermal_add(struct acpi_device *device) > { > int result = 0; > @@ -1606,6 +1667,18 @@ static int acpi_thermal_add(struct acpi_ > if (result) > goto free_memory; > > + if (dmi_check_system(thermal_psv_dmi_table)) { > + if (tz->trips.passive.flags.valid && > + tz->trips.passive.temperature > CELSIUS_TO_KELVIN(85)) { > + printk (KERN_INFO "Adjust passive trip point from %lu" > + " to %lu\n", > + KELVIN_TO_CELSIUS(tz->trips.passive.temperature), > + KELVIN_TO_CELSIUS(tz->trips.passive.temperature - 150)); > + tz->trips.passive.temperature -= 150; > + acpi_thermal_set_polling(tz, 5); > + } > + } > + > result = acpi_thermal_add_fs(device); > if (result) > goto unregister_thermal_zone; > -- > 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 -- 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