aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/kernel/acpi/boot.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
index ddddaed91872..4433a4be8171 100644
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -408,10 +408,6 @@ static int mp_register_gsi(struct device *dev, u32 gsi, int trigger,
408 if (acpi_irq_model != ACPI_IRQ_MODEL_IOAPIC) 408 if (acpi_irq_model != ACPI_IRQ_MODEL_IOAPIC)
409 return gsi; 409 return gsi;
410 410
411 /* Don't set up the ACPI SCI because it's already set up */
412 if (acpi_gbl_FADT.sci_interrupt == gsi)
413 return mp_map_gsi_to_irq(gsi, IOAPIC_MAP_ALLOC);
414
415 trigger = trigger == ACPI_EDGE_SENSITIVE ? 0 : 1; 411 trigger = trigger == ACPI_EDGE_SENSITIVE ? 0 : 1;
416 polarity = polarity == ACPI_ACTIVE_HIGH ? 0 : 1; 412 polarity = polarity == ACPI_ACTIVE_HIGH ? 0 : 1;
417 node = dev ? dev_to_node(dev) : NUMA_NO_NODE; 413 node = dev ? dev_to_node(dev) : NUMA_NO_NODE;
@@ -424,7 +420,8 @@ static int mp_register_gsi(struct device *dev, u32 gsi, int trigger,
424 if (irq < 0) 420 if (irq < 0)
425 return irq; 421 return irq;
426 422
427 if (enable_update_mptable) 423 /* Don't set up the ACPI SCI because it's already set up */
424 if (enable_update_mptable && acpi_gbl_FADT.sci_interrupt != gsi)
428 mp_config_acpi_gsi(dev, gsi, trigger, polarity); 425 mp_config_acpi_gsi(dev, gsi, trigger, polarity);
429 426
430 return irq; 427 return irq;
@@ -437,9 +434,6 @@ static void mp_unregister_gsi(u32 gsi)
437 if (acpi_irq_model != ACPI_IRQ_MODEL_IOAPIC) 434 if (acpi_irq_model != ACPI_IRQ_MODEL_IOAPIC)
438 return; 435 return;
439 436
440 if (acpi_gbl_FADT.sci_interrupt == gsi)
441 return;
442
443 irq = mp_map_gsi_to_irq(gsi, 0); 437 irq = mp_map_gsi_to_irq(gsi, 0);
444 if (irq > 0) 438 if (irq > 0)
445 mp_unmap_irq(irq); 439 mp_unmap_irq(irq);