ACPI suspend: Blacklist boxes that require us to set SCI_EN directly on resume
authorRafael J. Wysocki <rjw@sisk.pl>
Wed, 26 Nov 2008 22:53:13 +0000 (17:53 -0500)
committerLen Brown <len.brown@intel.com>
Wed, 26 Nov 2008 22:53:13 +0000 (17:53 -0500)
commit65df78473ffbf3bff5e2034df1638acc4f3ddd50
tree7fd62d4e040fc66d9db3a574fb20e467ba575453
parent40599072dca3ec7d4c9ff8271978be169f974638
ACPI suspend: Blacklist boxes that require us to set SCI_EN directly on resume

Some Apple boxes evidently require us to set SCI_EN on resume
directly, because if we don't do that, they hung somewhere in the
resume code path.  Moreover, on these boxes it is not sufficient to
use acpi_enable() to turn ACPI on during resume.  All of this is
against the ACPI specification which states that (1) the BIOS is
supposed to return from the S3 sleep state with ACPI enabled
(SCI_EN set) and (2) the SCI_EN bit is owned by the hardware and we
are not supposed to change it.

For this reason, blacklist the affected systems so that the SCI_EN
bit is set during resume on them.

[NOTE: Unconditional setting SCI_EN for all system on resume doesn't
 work, because it makes some other systems crash (that's to be
 expected).  Also, it is not entirely clear right now if all of the
 Apple boxes require this workaround.]

This patch fixes the recent regression tracked as
http://bugzilla.kernel.org/show_bug.cgi?id=12038

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Tested-by: Tino Keitel <tino.keitel@gmx.de>
Tested-by: Bob Copeland <me@bobcopeland.com>
Signed-off-by: Len Brown <len.brown@intel.com>
drivers/acpi/sleep/main.c