summaryrefslogtreecommitdiffstats
path: root/kernel/drivers/acpi/pci_link.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/drivers/acpi/pci_link.c')
-rw-r--r--kernel/drivers/acpi/pci_link.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/kernel/drivers/acpi/pci_link.c b/kernel/drivers/acpi/pci_link.c
index cfd7581cc..b09ad5544 100644
--- a/kernel/drivers/acpi/pci_link.c
+++ b/kernel/drivers/acpi/pci_link.c
@@ -826,6 +826,22 @@ void acpi_penalize_isa_irq(int irq, int active)
}
/*
+ * Penalize IRQ used by ACPI SCI. If ACPI SCI pin attributes conflict with
+ * PCI IRQ attributes, mark ACPI SCI as ISA_ALWAYS so it won't be use for
+ * PCI IRQs.
+ */
+void acpi_penalize_sci_irq(int irq, int trigger, int polarity)
+{
+ if (irq >= 0 && irq < ARRAY_SIZE(acpi_irq_penalty)) {
+ if (trigger != ACPI_MADT_TRIGGER_LEVEL ||
+ polarity != ACPI_MADT_POLARITY_ACTIVE_LOW)
+ acpi_irq_penalty[irq] += PIRQ_PENALTY_ISA_ALWAYS;
+ else
+ acpi_irq_penalty[irq] += PIRQ_PENALTY_PCI_USING;
+ }
+}
+
+/*
* Over-ride default table to reserve additional IRQs for use by ISA
* e.g. acpi_irq_isa=5
* Useful for telling ACPI how not to interfere with your ISA sound card.