x86/PCI: MMCONFIG: use a private structure rather than the ACPI MCFG one

This adds a struct pci_mmcfg_region with a little more information
than the struct acpi_mcfg_allocation used previously.  The acpi_mcfg
structure is defined by the spec, so we can't change it.

To begin with, struct pci_mmcfg_region is basically the same as the
ACPI MCFG version, but future patches will add more information.

Reviewed-by: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
This commit is contained in:
Bjorn Helgaas
2009-11-13 17:34:13 -07:00
committed by Jesse Barnes
parent df5eb1d67e
commit d215a9c8b4
4 changed files with 17 additions and 10 deletions

View File

@@ -34,10 +34,10 @@ static __init void free_all_mmcfg(void)
pci_mmcfg_config = NULL;
}
static __init struct acpi_mcfg_allocation *pci_mmconfig_add(int segment,
int start, int end, u64 addr)
static __init struct pci_mmcfg_region *pci_mmconfig_add(int segment, int start,
int end, u64 addr)
{
struct acpi_mcfg_allocation *new;
struct pci_mmcfg_region *new;
int new_num = pci_mmcfg_config_num + 1;
int i = pci_mmcfg_config_num;
@@ -349,7 +349,7 @@ static void __init pci_mmcfg_insert_resources(void)
names = (void *)&res[pci_mmcfg_config_num];
for (i = 0; i < pci_mmcfg_config_num; i++, res++) {
struct acpi_mcfg_allocation *cfg = &pci_mmcfg_config[i];
struct pci_mmcfg_region *cfg = &pci_mmcfg_config[i];
num_buses = cfg->end_bus_number - cfg->start_bus_number + 1;
res->name = names;
snprintf(names, PCI_MMCFG_RESOURCE_NAME_LEN,
@@ -523,7 +523,7 @@ reject:
static int __initdata known_bridge;
/* The physical address of the MMCONFIG aperture. Set from ACPI tables. */
struct acpi_mcfg_allocation *pci_mmcfg_config;
struct pci_mmcfg_region *pci_mmcfg_config;
int pci_mmcfg_config_num;
static int __init acpi_mcfg_check_entry(struct acpi_table_mcfg *mcfg,