Re: [ibm-acpi-devel] Avoid critical temp shutdowns on specific ThinkPad T4x(p) and R50p

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 30 Jul 2008, Thomas Renninger wrote:
> 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...

Urgh.

> +			DMI_MATCH(DMI_BIOS_VENDOR,"IBM"),
> +			DMI_MATCH(DMI_PRODUCT_VERSION,"ThinkPad T41"),
> +			DMI_MATCH(DMI_PRODUCT_VERSION,"ThinkPad T42"),
> +			DMI_MATCH(DMI_PRODUCT_VERSION,"ThinkPad T41p"),
> +			DMI_MATCH(DMI_PRODUCT_VERSION,"ThinkPad T42p"),
> +			DMI_MATCH(DMI_PRODUCT_VERSION,"ThinkPad R50p"),

Just match BIOS 1R* with VENDOR IBM.  The T40 is affected as well for sure.
It uses the same BIOS and EC firmware, it *has* to be.  And it is missing on
this list.

For IBM ThinkPads, it is *always* better to match on BIOS version than on
product version.

See here for model-BIOS table:
http://www.thinkwiki.org/wiki/BIOS_Upgrade_Downloads

and here for DMI info table:
http://www.thinkwiki.org/wiki/List_of_DMI_IDs

> +			DMI_MATCH(DMI_PRODUCT_VERSION,"ThinkPad T43"),
> +			DMI_MATCH(DMI_PRODUCT_VERSION,"ThinkPad T43p"),

Two possible BIOS: 1Y and 70 for the T43, and BIOS 1Y for the T43p.  Are you
sure all of these machines have the bug?  Is there a common factor in the
DSDT tables we can check to root out the buggy ones?

> +		.ident = "IBM ThinkPad R40",
> +		.matches = {
> +			DMI_MATCH(DMI_BIOS_VENDOR,"IBM"),
> +			DMI_MATCH(DMI_PRODUCT_VERSION,"ThinkPad R40"),
> +		},

Two possible BIOSes: 1O and 1P...  and many other ThinkPad BIOSes exist in
the time window from the 1O/1P to the 1Y.  Shouldn't all of them be suspect?

No X models have these issues? (the X models always had a slightly more
advanced BIOS, so it is indeed possible that the bug was never on that
branch of the code).

> +	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);
> +		}
> +	}

If this is a safe test that won't misstrigger or cause issues, maybe just
enable it on anything with BIOS_VENDOR IBM, and PRODUCT_VERSION "ThinkPad
[TR]*" ?  None of them have CPUs that should go over 85C, AFAIK.

-- 
  "One disk to rule them all, One disk to find them. One disk to bring
  them all and in the darkness grind them. In the Land of Redmond
  where the shadows lie." -- The Silicon Valley Tarot
  Henrique Holschuh
--
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

[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux