linux/arch/x86/pci
Bjorn Helgaas 13cfc73216 PCI: Work around poweroff & suspend-to-RAM issue on Macbook Pro 11
Neither soft poweroff (transition to ACPI power state S5) nor
suspend-to-RAM (transition to state S3) works on the Macbook Pro 11,4 and
11,5.

The problem is related to the [mem 0x7fa00000-0x7fbfffff] space.  When we
use that space, e.g., by assigning it to the 00:1c.0 Root Port, the ACPI
Power Management 1 Control Register (PM1_CNT) at [io 0x1804] doesn't work
anymore.

Linux does a soft poweroff (transition to S5) by writing to PM1_CNT.  The
theory about why this doesn't work is:

  - The write to PM1_CNT causes an SMI
  - The BIOS SMI handler depends on something in
    [mem 0x7fa00000-0x7fbfffff]
  - When Linux assigns [mem 0x7fa00000-0x7fbfffff] to the 00:1c.0 Port, it
    covers up whatever the SMI handler uses, so the SMI handler no longer
    works correctly

Reserve the [mem 0x7fa00000-0x7fbfffff] space so we don't assign it to
anything.

This is voodoo programming, since we don't know what the real conflict is,
but we've failed to find the root cause.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=103211
Tested-by: thejoe@gmail.com
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Cc: stable@vger.kernel.org
Cc: Rafael J. Wysocki <rafael@kernel.org>
Cc: Lukas Wunner <lukas@wunner.de>
Cc: Chen Yu <yu.c.chen@intel.com>
2017-06-28 16:03:38 -05:00
..
acpi.c
amd_bus.c
broadcom_bus.c
bus_numa.c
bus_numa.h
ce4100.c
common.c
direct.c
early.c
fixup.c PCI: Work around poweroff & suspend-to-RAM issue on Macbook Pro 11 2017-06-28 16:03:38 -05:00
i386.c pci-v4.12-changes 2017-05-08 19:03:25 -07:00
init.c
intel_mid_pci.c
irq.c
legacy.c
Makefile
mmconfig-shared.c
mmconfig_32.c
mmconfig_64.c
numachip.c
olpc.c
pcbios.c x86: use set_memory.h header 2017-05-08 17:15:13 -07:00
sta2x11-fixup.c
xen.c