• Rafael J. Wysocki's avatar
    PCI: VMD: ACPI: Make ACPI companion lookup work for VMD bus · 59dc3325
    Rafael J. Wysocki authored
    On some systems, in order to get to the deepest low-power state of
    the platform (which may be necessary to save significant enough
    amounts of energy while suspended to idle. for example), devices on
    the PCI bus exposed by the VMD driver need to be power-managed via
    ACPI.  However, the layout of the ACPI namespace below the VMD
    controller device object does not reflect the layout of the PCI bus
    under the VMD host bridge, so in order to identify the ACPI companion
    objects for the devices on that bus, it is necessary to use a special
    _ADR encoding on the ACPI side.  In other words, acpi_pci_find_companion()
    does not work for these devices, so it needs to be amended with a
    special lookup logic specific to the VMD bus.
    
    Address this issue by allowing the VMD driver to temporarily install
    an ACPI companion lookup hook containing the code matching the devices
    on the VMD PCI bus with the corresponding objects in the ACPI
    namespace.
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    Acked-by: default avatarJon Derrick <jonathan.derrick@intel.com>
    59dc3325
host-bridge.c 2.4 KB