• Bjorn Helgaas's avatar
    PCI: Work around poweroff & suspend-to-RAM issue on Macbook Pro 11 · 31f8d306
    Bjorn Helgaas authored
    commit 13cfc732 upstream.
    
    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: default avatarBjorn Helgaas <bhelgaas@google.com>
    Cc: Rafael J. Wysocki <rafael@kernel.org>
    Cc: Lukas Wunner <lukas@wunner.de>
    Cc: Chen Yu <yu.c.chen@intel.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    31f8d306
fixup.c 20 KB