aboutsummaryrefslogtreecommitdiff
path: root/drivers/pci
diff options
context:
space:
mode:
authorBjorn Helgaas <bhelgaas@google.com>2012-06-22 15:39:00 -0600
committerBjorn Helgaas <bhelgaas@google.com>2012-06-22 15:39:00 -0600
commite5028b52e46eb1379d78d136bd0890705f331183 (patch)
tree5279eabc18e590a7fcc9d3f96528a9defada14f8 /drivers/pci
parent0f6662a49bf1b5a163ed4e6321c382d2390c817b (diff)
parent397038519f2c2ac68c125c0cd766e91041c52b30 (diff)
Merge branch 'topic/jiang-mmconfig-v10' into next
* topic/jiang-mmconfig-v10: ACPI: mark acpi_sfi_table_parse() as __init x86/PCI: use pr_level() to replace printk(KERN_LEVEL) x86/PCI: refine __pci_mmcfg_init() for better code readability x86/PCI: get rid of redundant log messages x86/PCI: simplify pci_mmcfg_late_insert_resources() x86/PCI: update MMCONFIG information when hot-plugging PCI host bridges PCI/ACPI: provide MMCONFIG address for PCI host bridges x86/PCI: add pci_mmconfig_insert()/delete() for PCI root bridge hotplug x86/PCI: prepare pci_mmcfg_check_reserved() to be called at runtime x86/PCI: introduce pci_mmcfg_arch_map()/pci_mmcfg_arch_unmap() x86/PCI: use RCU list to protect mmconfig list x86/PCI: split out pci_mmconfig_alloc() for code reuse x86/PCI: split out pci_mmcfg_check_reserved() for code reuse
Diffstat (limited to 'drivers/pci')
-rw-r--r--drivers/pci/pci-acpi.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/pci/pci-acpi.c b/drivers/pci/pci-acpi.c
index 61e2fefeeda..87f4c504eaf 100644
--- a/drivers/pci/pci-acpi.c
+++ b/drivers/pci/pci-acpi.c
@@ -162,6 +162,20 @@ acpi_status pci_acpi_remove_pm_notifier(struct acpi_device *dev)
return remove_pm_notifier(dev, pci_acpi_wake_dev);
}
+phys_addr_t acpi_pci_root_get_mcfg_addr(acpi_handle handle)
+{
+ acpi_status status = AE_NOT_EXIST;
+ unsigned long long mcfg_addr;
+
+ if (handle)
+ status = acpi_evaluate_integer(handle, METHOD_NAME__CBA,
+ NULL, &mcfg_addr);
+ if (ACPI_FAILURE(status))
+ return 0;
+
+ return (phys_addr_t)mcfg_addr;
+}
+
/*
* _SxD returns the D-state with the highest power
* (lowest D-state number) supported in the S-state "x".