[PATCH v2 08/18] x86/PCI: MMCONFIG: use a private structure rather than the ACPI MCFG one

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx>
---
 arch/x86/include/asm/pci_x86.h |    9 ++++++++-
 arch/x86/pci/mmconfig-shared.c |   10 +++++-----
 arch/x86/pci/mmconfig_32.c     |    2 +-
 arch/x86/pci/mmconfig_64.c     |    6 +++---
 4 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/arch/x86/include/asm/pci_x86.h b/arch/x86/include/asm/pci_x86.h
index 7d94a23..3a2ca5f 100644
--- a/arch/x86/include/asm/pci_x86.h
+++ b/arch/x86/include/asm/pci_x86.h
@@ -118,10 +118,17 @@ extern int __init pcibios_init(void);
 
 /* pci-mmconfig.c */
 
+struct pci_mmcfg_region {
+	u64 address;
+	u16 pci_segment;
+	u8 start_bus_number;
+	u8 end_bus_number;
+};
+
 extern int __init pci_mmcfg_arch_init(void);
 extern void __init pci_mmcfg_arch_free(void);
 
-extern struct acpi_mcfg_allocation *pci_mmcfg_config;
+extern struct pci_mmcfg_region *pci_mmcfg_config;
 extern int pci_mmcfg_config_num;
 
 #define PCI_MMCFG_BUS_OFFSET(bus)      ((bus) << 20)
diff --git a/arch/x86/pci/mmconfig-shared.c b/arch/x86/pci/mmconfig-shared.c
index 4820f0e..5f7afdd 100644
--- a/arch/x86/pci/mmconfig-shared.c
+++ b/arch/x86/pci/mmconfig-shared.c
@@ -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,
diff --git a/arch/x86/pci/mmconfig_32.c b/arch/x86/pci/mmconfig_32.c
index 8c19df8..3936ece 100644
--- a/arch/x86/pci/mmconfig_32.c
+++ b/arch/x86/pci/mmconfig_32.c
@@ -27,7 +27,7 @@ static int mmcfg_last_accessed_cpu;
  */
 static u32 get_base_addr(unsigned int seg, int bus, unsigned devfn)
 {
-	struct acpi_mcfg_allocation *cfg;
+	struct pci_mmcfg_region *cfg;
 	int cfg_num;
 
 	for (cfg_num = 0; cfg_num < pci_mmcfg_config_num; cfg_num++) {
diff --git a/arch/x86/pci/mmconfig_64.c b/arch/x86/pci/mmconfig_64.c
index 8588711..7a6231c 100644
--- a/arch/x86/pci/mmconfig_64.c
+++ b/arch/x86/pci/mmconfig_64.c
@@ -14,14 +14,14 @@
 
 /* Static virtual mapping of the MMCONFIG aperture */
 struct mmcfg_virt {
-	struct acpi_mcfg_allocation *cfg;
+	struct pci_mmcfg_region *cfg;
 	char __iomem *virt;
 };
 static struct mmcfg_virt *pci_mmcfg_virt;
 
 static char __iomem *get_virt(unsigned int seg, unsigned bus)
 {
-	struct acpi_mcfg_allocation *cfg;
+	struct pci_mmcfg_region *cfg;
 	int cfg_num;
 
 	for (cfg_num = 0; cfg_num < pci_mmcfg_config_num; cfg_num++) {
@@ -109,7 +109,7 @@ static struct pci_raw_ops pci_mmcfg = {
 	.write =	pci_mmcfg_write,
 };
 
-static void __iomem * __init mcfg_ioremap(struct acpi_mcfg_allocation *cfg)
+static void __iomem * __init mcfg_ioremap(struct pci_mmcfg_region *cfg)
 {
 	void __iomem *addr;
 	u64 start, size;

--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux