>> To verify this, please hack acpi_thermal_active.
>
>Do you mean hack it for now to return without doing anything (like if
>'tz' wasn't valid)? Or do it farther in the function, like by
>changing
>
> result =
> acpi_bus_set_power(active->devices.
> handles[j],
> ACPI_STATE_D0);
>to
>
> result = 1;
>
>> Disable active/passive cooling request before suspend.
Yes, just return , and DONT do anything could impact to platform.
>
>Do I need to hack acpi_thermal_passive() as well?
Yes.
Please also make sure you have vanilla DSDT, vanilla Kernel, and just
hacked
acpi_thermal_active/passive.
I'm waiting for your good news.
If it is the root cause, probably you need to come up with a real patch.
:-)
Thanks,
Luming
Bad news. It hangs when I do the usual stress test:
echo 1 > THM0/polling_frequency
sleep.sh
sleep.sh
The second sleep.sh hangs going to sleep. It is in an endless loop
printing the following line, once per second (from the
polling_frequency):
Execute Method: [\_TZ_.THM0._TMP] (Node c157bf88)
> Please also make sure you have vanilla DSDT
$ grep DSDT /boot/config-2.6.16-rc5.fake-thermal_active+passive
# CONFIG_ACPI_CUSTOM_DSDT is not set
> vanilla Kernel, and just hacked acpi_thermal_active/passive.
Only diff between pristine 2.6.16-rc5 tree and mine is:
diff -rup /tmp/linux-2.6.16-rc5/drivers/acpi/thermal.c /usr/src/linux-2.6.16-rc5/drivers/acpi/thermal.c
--- /tmp/linux-2.6.16-rc5/drivers/acpi/thermal.c 2006-02-27 00:09:35.000000000 -0500
+++ /usr/src/linux-2.6.16-rc5/drivers/acpi/thermal.c 2006-03-16 09:45:30.000000000 -0500
@@ -526,6 +526,8 @@ static void acpi_thermal_passive(struct
ACPI_FUNCTION_TRACE("acpi_thermal_passive");
+ return;
+
if (!tz || !tz->trips.passive.flags.valid)
return;
@@ -615,6 +617,8 @@ static void acpi_thermal_active(struct a
ACPI_FUNCTION_TRACE("acpi_thermal_active");
+ return;
+
if (!tz)
return;
-Sanjoy
`Never underestimate the evil of which men of power are capable.'
--Bertrand Russell, _War Crimes in Vietnam_, chapter 1.