arm64: PCI: Exclude ACPI "consumer" resources from host bridge windows
authorBjorn Helgaas <bhelgaas@google.com>
Fri, 2 Dec 2016 23:25:54 +0000 (17:25 -0600)
committerBjorn Helgaas <helgaas@kernel.org>
Tue, 6 Dec 2016 19:45:48 +0000 (13:45 -0600)
commit8fd4391ee717569d60fa283da778f7497630c9b7
tree959b266e36ffadffc9ae6d9b8c2480825b4d2291
parent093d24a204425f71f4f106b7e62c8df4b456e1cc
arm64: PCI: Exclude ACPI "consumer" resources from host bridge windows

On x86 and ia64, we have treated all ACPI _CRS resources of PNP0A03 host
bridge devices as "producers", i.e., as host bridge windows.  That's partly
because some x86 BIOSes improperly used "consumer" descriptors to describe
windows and partly because Linux didn't have good support for handling
consumer and producer descriptors differently.

One result is that x86 BIOSes describe host bridge "consumer" resources in
the _CRS of a PNP0C02 device, not the PNP0A03 device itself.  On arm64 we
don't have a legacy of firmware that has this consumer/producer confusion,
so we can handle PNP0A03 "consumer" descriptors as host bridge registers
instead of windows.

Exclude non-window ("consumer") resources from the list of host bridge
windows.  This allows the use of "consumer" PNP0A03 descriptors for bridge
register space.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
arch/arm64/kernel/pci.c