ACPI/PCI: Pay attention to device-specific _PXM node values
authorJonathan Cameron <Jonathan.Cameron@huawei.com>
Wed, 12 Sep 2018 15:21:40 +0000 (16:21 +0100)
committerBjorn Helgaas <bhelgaas@google.com>
Mon, 17 Sep 2018 21:33:25 +0000 (16:33 -0500)
commitbad7dcd94f3956bcfc0a69ef71fdf0fcca3de4a8
tree4b8046f276965e20025bdc2dddb1de1233b1250b
parentd193631bfb383d7503a1a72fe1643ac2168bbba7
ACPI/PCI: Pay attention to device-specific _PXM node values

The ACPI specification allows you to provide _PXM entries for devices based
on their location on a particular bus.  Let us use that if it is provided
rather than just assuming it makes sense to put the device into the
proximity domain of the root.

An example DSDT entry that will supply this is:

  Device (PCI2)
  {
    Name (_HID, "PNP0A08") // PCI Express Root Bridge
    Name (_CID, "PNP0A03") // Compatible PCI Root Bridge
    Name(_SEG, 2) // Segment of this Root complex
    Name(_BBN, 0xF8) // Base Bus Number
    Name(_CCA, 1)
    Method (_PXM, 0, NotSerialized) {
      Return(0x00)
    }

    ...
    Device (BRI0) {
      Name (_HID, "19E51610")
      Name (_ADR, 0)
      Name (_BBN, 0xF9)
      Device (CAR0) {
        Name (_HID, "97109912")
        Name (_ADR, 0)
        Method (_PXM, 0, NotSerialized) {
          Return(0x02)
        }
      }
    }
  }

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
drivers/pci/pci-acpi.c