aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pci
diff options
context:
space:
mode:
authorJiang Liu <jiang.liu@huawei.com>2012-06-22 02:55:16 -0400
committerBjorn Helgaas <bhelgaas@google.com>2012-06-22 17:16:51 -0400
commitf4b57a3b4352f72e461e362cb25917e28bdba80f (patch)
tree645b4c86120578cae02e0e4065ba2b39d77bb539 /drivers/pci
parent9c95111b330d2ddf851444528a7608f267cbb50c (diff)
PCI/ACPI: provide MMCONFIG address for PCI host bridges
This patch provide MMCONFIG address for PCI host bridges, which will be used to support host bridge hotplug. It gets MMCONFIG address by evaluating _CBA method if available. Reviewed-by: Yinghai Lu <yinghai@kernel.org> Signed-off-by: Jiang Liu <liuj97@gmail.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
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 61e2fefeedab..87f4c504eafb 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)
162 return remove_pm_notifier(dev, pci_acpi_wake_dev); 162 return remove_pm_notifier(dev, pci_acpi_wake_dev);
163} 163}
164 164
165phys_addr_t acpi_pci_root_get_mcfg_addr(acpi_handle handle)
166{
167 acpi_status status = AE_NOT_EXIST;
168 unsigned long long mcfg_addr;
169
170 if (handle)
171 status = acpi_evaluate_integer(handle, METHOD_NAME__CBA,
172 NULL, &mcfg_addr);
173 if (ACPI_FAILURE(status))
174 return 0;
175
176 return (phys_addr_t)mcfg_addr;
177}
178
165/* 179/*
166 * _SxD returns the D-state with the highest power 180 * _SxD returns the D-state with the highest power
167 * (lowest D-state number) supported in the S-state "x". 181 * (lowest D-state number) supported in the S-state "x".