aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/acpi/boot.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kernel/acpi/boot.c')
-rw-r--r--arch/x86/kernel/acpi/boot.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
index da718d67259..0a036dc6f9f 100644
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -313,7 +313,7 @@ acpi_parse_ioapic(struct acpi_subtable_header * header, const unsigned long end)
313/* 313/*
314 * Parse Interrupt Source Override for the ACPI SCI 314 * Parse Interrupt Source Override for the ACPI SCI
315 */ 315 */
316static void __init acpi_sci_ioapic_setup(u32 gsi, u16 polarity, u16 trigger) 316static void __init acpi_sci_ioapic_setup(u8 bus_irq, u16 polarity, u16 trigger, u32 gsi)
317{ 317{
318 if (trigger == 0) /* compatible SCI trigger is level */ 318 if (trigger == 0) /* compatible SCI trigger is level */
319 trigger = 3; 319 trigger = 3;
@@ -333,7 +333,7 @@ static void __init acpi_sci_ioapic_setup(u32 gsi, u16 polarity, u16 trigger)
333 * If GSI is < 16, this will update its flags, 333 * If GSI is < 16, this will update its flags,
334 * else it will create a new mp_irqs[] entry. 334 * else it will create a new mp_irqs[] entry.
335 */ 335 */
336 mp_override_legacy_irq(gsi, polarity, trigger, gsi); 336 mp_override_legacy_irq(bus_irq, polarity, trigger, gsi);
337 337
338 /* 338 /*
339 * stash over-ride to indicate we've been here 339 * stash over-ride to indicate we've been here
@@ -357,9 +357,10 @@ acpi_parse_int_src_ovr(struct acpi_subtable_header * header,
357 acpi_table_print_madt_entry(header); 357 acpi_table_print_madt_entry(header);
358 358
359 if (intsrc->source_irq == acpi_gbl_FADT.sci_interrupt) { 359 if (intsrc->source_irq == acpi_gbl_FADT.sci_interrupt) {
360 acpi_sci_ioapic_setup(intsrc->global_irq, 360 acpi_sci_ioapic_setup(intsrc->source_irq,
361 intsrc->inti_flags & ACPI_MADT_POLARITY_MASK, 361 intsrc->inti_flags & ACPI_MADT_POLARITY_MASK,
362 (intsrc->inti_flags & ACPI_MADT_TRIGGER_MASK) >> 2); 362 (intsrc->inti_flags & ACPI_MADT_TRIGGER_MASK) >> 2,
363 intsrc->global_irq);
363 return 0; 364 return 0;
364 } 365 }
365 366
@@ -1162,7 +1163,8 @@ static int __init acpi_parse_madt_ioapic_entries(void)
1162 * pretend we got one so we can set the SCI flags. 1163 * pretend we got one so we can set the SCI flags.
1163 */ 1164 */
1164 if (!acpi_sci_override_gsi) 1165 if (!acpi_sci_override_gsi)
1165 acpi_sci_ioapic_setup(acpi_gbl_FADT.sci_interrupt, 0, 0); 1166 acpi_sci_ioapic_setup(acpi_gbl_FADT.sci_interrupt, 0, 0,
1167 acpi_gbl_FADT.sci_interrupt);
1166 1168
1167 /* Fill in identity legacy mappings where no override */ 1169 /* Fill in identity legacy mappings where no override */
1168 mp_config_acpi_legacy_irqs(); 1170 mp_config_acpi_legacy_irqs();