diff options
author | Bjorn Helgaas <bhelgaas@google.com> | 2013-01-17 16:00:36 -0700 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2013-01-17 16:00:36 -0700 |
commit | 708b59bfe1d1727451ca41f5dc4c17cf99dfaf51 (patch) | |
tree | da5fb7826f92f90b58bb5f33ec552b52d3667152 /arch/x86 | |
parent | b7040469de97d361120836b4140941a08d06f56f (diff) | |
parent | 6c0cc950ae670403a362bdcbf3cde0df33744928 (diff) | |
download | op-kernel-dev-708b59bfe1d1727451ca41f5dc4c17cf99dfaf51.zip op-kernel-dev-708b59bfe1d1727451ca41f5dc4c17cf99dfaf51.tar.gz |
Merge branch 'pci/rafael-set-root-bridge-handle' into next
* pci/rafael-set-root-bridge-handle:
ACPI / PCI: Set root bridge ACPI handle in advance
Diffstat (limited to 'arch/x86')
-rw-r--r-- | arch/x86/include/asm/pci.h | 3 | ||||
-rw-r--r-- | arch/x86/pci/acpi.c | 9 |
2 files changed, 12 insertions, 0 deletions
diff --git a/arch/x86/include/asm/pci.h b/arch/x86/include/asm/pci.h index dba7805..9f437e9 100644 --- a/arch/x86/include/asm/pci.h +++ b/arch/x86/include/asm/pci.h @@ -14,6 +14,9 @@ struct pci_sysdata { int domain; /* PCI domain */ int node; /* NUMA node */ +#ifdef CONFIG_ACPI + void *acpi; /* ACPI-specific data */ +#endif #ifdef CONFIG_X86_64 void *iommu; /* IOMMU private data */ #endif diff --git a/arch/x86/pci/acpi.c b/arch/x86/pci/acpi.c index 0c01261f..3d49094 100644 --- a/arch/x86/pci/acpi.c +++ b/arch/x86/pci/acpi.c @@ -522,6 +522,7 @@ struct pci_bus * __devinit pci_acpi_scan_root(struct acpi_pci_root *root) sd = &info->sd; sd->domain = domain; sd->node = node; + sd->acpi = device->handle; /* * Maybe the desired pci bus has been already scanned. In such case * it is unnecessary to scan the pci bus with the given domain,busnum. @@ -593,6 +594,14 @@ struct pci_bus * __devinit pci_acpi_scan_root(struct acpi_pci_root *root) return bus; } +int pcibios_root_bridge_prepare(struct pci_host_bridge *bridge) +{ + struct pci_sysdata *sd = bridge->bus->sysdata; + + ACPI_HANDLE_SET(&bridge->dev, sd->acpi); + return 0; +} + int __init pci_acpi_init(void) { struct pci_dev *dev = NULL; |