x86, irq, acpi: Get rid of special handling of GSI for ACPI SCI
The IOAPIC has logic to track IOAPIC pin status, so there's no need for special treatment for GSI used by ACPI SCI in function mp_register_gsi() and mp_unregister_gsi(). Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com> Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> Cc: Tony Luck <tony.luck@intel.com> Cc: Joerg Roedel <joro@8bytes.org> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Rafael J. Wysocki <rjw@rjwysocki.net> Cc: Bjorn Helgaas <bhelgaas@google.com> Cc: Randy Dunlap <rdunlap@infradead.org> Cc: Yinghai Lu <yinghai@kernel.org> Cc: Borislav Petkov <bp@alien8.de> Cc: Len Brown <len.brown@intel.com> Cc: Pavel Machek <pavel@ucw.cz> Link: http://lkml.kernel.org/r/1414397531-28254-2-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
Родитель
e89900c9ad
Коммит
cd68f6bd53
|
@ -408,10 +408,6 @@ static int mp_register_gsi(struct device *dev, u32 gsi, int trigger,
|
||||||
if (acpi_irq_model != ACPI_IRQ_MODEL_IOAPIC)
|
if (acpi_irq_model != ACPI_IRQ_MODEL_IOAPIC)
|
||||||
return gsi;
|
return gsi;
|
||||||
|
|
||||||
/* Don't set up the ACPI SCI because it's already set up */
|
|
||||||
if (acpi_gbl_FADT.sci_interrupt == gsi)
|
|
||||||
return mp_map_gsi_to_irq(gsi, IOAPIC_MAP_ALLOC);
|
|
||||||
|
|
||||||
trigger = trigger == ACPI_EDGE_SENSITIVE ? 0 : 1;
|
trigger = trigger == ACPI_EDGE_SENSITIVE ? 0 : 1;
|
||||||
polarity = polarity == ACPI_ACTIVE_HIGH ? 0 : 1;
|
polarity = polarity == ACPI_ACTIVE_HIGH ? 0 : 1;
|
||||||
node = dev ? dev_to_node(dev) : NUMA_NO_NODE;
|
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,
|
||||||
if (irq < 0)
|
if (irq < 0)
|
||||||
return irq;
|
return irq;
|
||||||
|
|
||||||
if (enable_update_mptable)
|
/* Don't set up the ACPI SCI because it's already set up */
|
||||||
|
if (enable_update_mptable && acpi_gbl_FADT.sci_interrupt != gsi)
|
||||||
mp_config_acpi_gsi(dev, gsi, trigger, polarity);
|
mp_config_acpi_gsi(dev, gsi, trigger, polarity);
|
||||||
|
|
||||||
return irq;
|
return irq;
|
||||||
|
@ -437,9 +434,6 @@ static void mp_unregister_gsi(u32 gsi)
|
||||||
if (acpi_irq_model != ACPI_IRQ_MODEL_IOAPIC)
|
if (acpi_irq_model != ACPI_IRQ_MODEL_IOAPIC)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (acpi_gbl_FADT.sci_interrupt == gsi)
|
|
||||||
return;
|
|
||||||
|
|
||||||
irq = mp_map_gsi_to_irq(gsi, 0);
|
irq = mp_map_gsi_to_irq(gsi, 0);
|
||||||
if (irq > 0)
|
if (irq > 0)
|
||||||
mp_unmap_irq(irq);
|
mp_unmap_irq(irq);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче