diff options
Diffstat (limited to 'arch/i386/pci/mmconfig.c')
-rw-r--r-- | arch/i386/pci/mmconfig.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/arch/i386/pci/mmconfig.c b/arch/i386/pci/mmconfig.c index e2616a266e13..5700220dcf5f 100644 --- a/arch/i386/pci/mmconfig.c +++ b/arch/i386/pci/mmconfig.c | |||
@@ -36,7 +36,7 @@ static DECLARE_BITMAP(fallback_slots, MAX_CHECK_BUS*32); | |||
36 | static u32 get_base_addr(unsigned int seg, int bus, unsigned devfn) | 36 | static u32 get_base_addr(unsigned int seg, int bus, unsigned devfn) |
37 | { | 37 | { |
38 | int cfg_num = -1; | 38 | int cfg_num = -1; |
39 | struct acpi_table_mcfg_config *cfg; | 39 | struct acpi_mcfg_allocation *cfg; |
40 | 40 | ||
41 | if (seg == 0 && bus < MAX_CHECK_BUS && | 41 | if (seg == 0 && bus < MAX_CHECK_BUS && |
42 | test_bit(PCI_SLOT(devfn) + 32*bus, fallback_slots)) | 42 | test_bit(PCI_SLOT(devfn) + 32*bus, fallback_slots)) |
@@ -48,11 +48,11 @@ static u32 get_base_addr(unsigned int seg, int bus, unsigned devfn) | |||
48 | break; | 48 | break; |
49 | } | 49 | } |
50 | cfg = &pci_mmcfg_config[cfg_num]; | 50 | cfg = &pci_mmcfg_config[cfg_num]; |
51 | if (cfg->pci_segment_group_number != seg) | 51 | if (cfg->pci_segment != seg) |
52 | continue; | 52 | continue; |
53 | if ((cfg->start_bus_number <= bus) && | 53 | if ((cfg->start_bus_number <= bus) && |
54 | (cfg->end_bus_number >= bus)) | 54 | (cfg->end_bus_number >= bus)) |
55 | return cfg->base_address; | 55 | return cfg->address; |
56 | } | 56 | } |
57 | 57 | ||
58 | /* Handle more broken MCFG tables on Asus etc. | 58 | /* Handle more broken MCFG tables on Asus etc. |
@@ -60,9 +60,9 @@ static u32 get_base_addr(unsigned int seg, int bus, unsigned devfn) | |||
60 | this applies to all busses. */ | 60 | this applies to all busses. */ |
61 | cfg = &pci_mmcfg_config[0]; | 61 | cfg = &pci_mmcfg_config[0]; |
62 | if (pci_mmcfg_config_num == 1 && | 62 | if (pci_mmcfg_config_num == 1 && |
63 | cfg->pci_segment_group_number == 0 && | 63 | cfg->pci_segment == 0 && |
64 | (cfg->start_bus_number | cfg->end_bus_number) == 0) | 64 | (cfg->start_bus_number | cfg->end_bus_number) == 0) |
65 | return cfg->base_address; | 65 | return cfg->address; |
66 | 66 | ||
67 | /* Fall back to type 0 */ | 67 | /* Fall back to type 0 */ |
68 | return 0; | 68 | return 0; |
@@ -125,7 +125,7 @@ static int pci_mmcfg_write(unsigned int seg, unsigned int bus, | |||
125 | unsigned long flags; | 125 | unsigned long flags; |
126 | u32 base; | 126 | u32 base; |
127 | 127 | ||
128 | if ((bus > 255) || (devfn > 255) || (reg > 4095)) | 128 | if ((bus > 255) || (devfn > 255) || (reg > 4095)) |
129 | return -EINVAL; | 129 | return -EINVAL; |
130 | 130 | ||
131 | base = get_base_addr(seg, bus, devfn); | 131 | base = get_base_addr(seg, bus, devfn); |
@@ -199,19 +199,19 @@ void __init pci_mmcfg_init(int type) | |||
199 | if ((pci_probe & PCI_PROBE_MMCONF) == 0) | 199 | if ((pci_probe & PCI_PROBE_MMCONF) == 0) |
200 | return; | 200 | return; |
201 | 201 | ||
202 | acpi_table_parse(ACPI_MCFG, acpi_parse_mcfg); | 202 | acpi_table_parse(ACPI_SIG_MCFG, acpi_parse_mcfg); |
203 | if ((pci_mmcfg_config_num == 0) || | 203 | if ((pci_mmcfg_config_num == 0) || |
204 | (pci_mmcfg_config == NULL) || | 204 | (pci_mmcfg_config == NULL) || |
205 | (pci_mmcfg_config[0].base_address == 0)) | 205 | (pci_mmcfg_config[0].address == 0)) |
206 | return; | 206 | return; |
207 | 207 | ||
208 | /* Only do this check when type 1 works. If it doesn't work | 208 | /* Only do this check when type 1 works. If it doesn't work |
209 | assume we run on a Mac and always use MCFG */ | 209 | assume we run on a Mac and always use MCFG */ |
210 | if (type == 1 && !e820_all_mapped(pci_mmcfg_config[0].base_address, | 210 | if (type == 1 && !e820_all_mapped(pci_mmcfg_config[0].address, |
211 | pci_mmcfg_config[0].base_address + MMCONFIG_APER_MIN, | 211 | pci_mmcfg_config[0].address + MMCONFIG_APER_MIN, |
212 | E820_RESERVED)) { | 212 | E820_RESERVED)) { |
213 | printk(KERN_ERR "PCI: BIOS Bug: MCFG area at %x is not E820-reserved\n", | 213 | printk(KERN_ERR "PCI: BIOS Bug: MCFG area at %lx is not E820-reserved\n", |
214 | pci_mmcfg_config[0].base_address); | 214 | (unsigned long)pci_mmcfg_config[0].address); |
215 | printk(KERN_ERR "PCI: Not using MMCONFIG.\n"); | 215 | printk(KERN_ERR "PCI: Not using MMCONFIG.\n"); |
216 | return; | 216 | return; |
217 | } | 217 | } |