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)
committerGreg Kroah-Hartman <gregkh@suse.de>
Sat, 13 Dec 2008 23:29:14 +0000 (15:29 -0800)
commit5894153d2c263436ed4a138a2939ea32cf154495
tree3a207ef4b6f6815704c7942114697d7b5dab0c57
parent21b7c0e824f0e98242e625a15bea368ea72ebcbb
ACPI suspend: Blacklist boxes that require us to set SCI_EN directly on resume

commit 65df78473ffbf3bff5e2034df1638acc4f3ddd50 upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/acpi/sleep/main.c