aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/include/asm/pci.h3
-rw-r--r--arch/x86/pci/acpi.c9
2 files changed, 12 insertions, 0 deletions
diff --git a/arch/x86/include/asm/pci.h b/arch/x86/include/asm/pci.h
index dba7805176bf..9f437e97e9e8 100644
--- a/arch/x86/include/asm/pci.h
+++ b/arch/x86/include/asm/pci.h
@@ -14,6 +14,9 @@
14struct pci_sysdata { 14struct pci_sysdata {
15 int domain; /* PCI domain */ 15 int domain; /* PCI domain */
16 int node; /* NUMA node */ 16 int node; /* NUMA node */
17#ifdef CONFIG_ACPI
18 void *acpi; /* ACPI-specific data */
19#endif
17#ifdef CONFIG_X86_64 20#ifdef CONFIG_X86_64
18 void *iommu; /* IOMMU private data */ 21 void *iommu; /* IOMMU private data */
19#endif 22#endif
diff --git a/arch/x86/pci/acpi.c b/arch/x86/pci/acpi.c
index 0c01261fe5a8..3d49094ed3e8 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)
522 sd = &info->sd; 522 sd = &info->sd;
523 sd->domain = domain; 523 sd->domain = domain;
524 sd->node = node; 524 sd->node = node;
525 sd->acpi = device->handle;
525 /* 526 /*
526 * Maybe the desired pci bus has been already scanned. In such case 527 * Maybe the desired pci bus has been already scanned. In such case
527 * it is unnecessary to scan the pci bus with the given domain,busnum. 528 * 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)
593 return bus; 594 return bus;
594} 595}
595 596
597int pcibios_root_bridge_prepare(struct pci_host_bridge *bridge)
598{
599 struct pci_sysdata *sd = bridge->bus->sysdata;
600
601 ACPI_HANDLE_SET(&bridge->dev, sd->acpi);
602 return 0;
603}
604
596int __init pci_acpi_init(void) 605int __init pci_acpi_init(void)
597{ 606{
598 struct pci_dev *dev = NULL; 607 struct pci_dev *dev = NULL;