diff options
author | Bjorn Helgaas <bhelgaas@google.com> | 2013-01-17 18:00:36 -0500 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2013-01-17 18:00:36 -0500 |
commit | 708b59bfe1d1727451ca41f5dc4c17cf99dfaf51 (patch) | |
tree | da5fb7826f92f90b58bb5f33ec552b52d3667152 /arch/x86 | |
parent | b7040469de97d361120836b4140941a08d06f56f (diff) | |
parent | 6c0cc950ae670403a362bdcbf3cde0df33744928 (diff) |
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 dba7805176bf..9f437e97e9e8 100644 --- a/arch/x86/include/asm/pci.h +++ b/arch/x86/include/asm/pci.h | |||
@@ -14,6 +14,9 @@ | |||
14 | struct pci_sysdata { | 14 | struct 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 | ||
597 | int 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 | |||
596 | int __init pci_acpi_init(void) | 605 | int __init pci_acpi_init(void) |
597 | { | 606 | { |
598 | struct pci_dev *dev = NULL; | 607 | struct pci_dev *dev = NULL; |