RE: 2.6.16-rc5: known regressions [TP 600X S3, vanilla DSDT]

Yu, Luming
2006-03-18T13:24:11Z

>> The short-term proper way could be:
>> 1. add a global variable: acpi_in_suspend.
>> 2. in acpi_pm_prepare:
>> a.call acpi_os_wait_events_complete()
>> b.set acpi_in_suspend = YES.
>> in acpi_pm_finish :
>> set acpi_in_suspend = NO.
>> 3. in acpi_thermal_run:
>> if (acpi_in_suspend == YES)
>> do nothing.
>
>I tested the included diff to implement the above short-term fix. It
>also hung on the second sleep. BUT, it's the same reason that the
>utils.c change didn't help: because acpi_thermal_add() was loading
>THM[0267]. After the usual modification to acpi_thermal_add() to have
>it ignore THM[267], the system didn't hang (12 cycles). Which is
>progress.

Hmm, probably, you need to do :

4. in acpi_thermal_notify,
if (acpi_in_suspend == YES)
do nothing.