From 2c1c0b0ca61d5055dddb48deaa3e4af32af9fc13 Mon Sep 17 00:00:00 2001 From: Jianmin Lv Date: Wed, 27 Jul 2022 19:03:32 +0800 Subject: [PATCH] irqchip/ACPI: Introduce ACPI_IRQ_MODEL_LPIC for LoongArch LoongArch inclusion category: feature bugzilla: https://gitee.com/openeuler/kernel/issues/I6BWFP -------------------------------- For LoongArch, ACPI_IRQ_MODEL_LPIC is introduced, and high level trigger type is set for PCI devices legacy irq. Change-Id: I5f9d44e2d9c7d3492fedf89b64becac5fb5cc270 Signed-off-by: Jianmin Lv --- arch/loongarch/kernel/acpi.c | 1 + drivers/acpi/pci_irq.c | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/arch/loongarch/kernel/acpi.c b/arch/loongarch/kernel/acpi.c index 0d6a4de10f6c..3d9759c3ccb5 100644 --- a/arch/loongarch/kernel/acpi.c +++ b/arch/loongarch/kernel/acpi.c @@ -165,6 +165,7 @@ static void __init acpi_process_madt(void) acpi_table_parse_madt(ACPI_MADT_TYPE_EIO_PIC, acpi_parse_eio_master, MAX_IO_PICS); + acpi_irq_model = ACPI_IRQ_MODEL_LPIC; loongson_sysconf.nr_cpus = num_processors; } diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c index 14ee631cb7cf..0684ab9b8f62 100644 --- a/drivers/acpi/pci_irq.c +++ b/drivers/acpi/pci_irq.c @@ -405,8 +405,14 @@ int acpi_pci_irq_enable(struct pci_dev *dev) * controller and must therefore be considered active high * as default. */ +#ifdef CONFIG_LOONGARCH + int polarity = acpi_irq_model == ACPI_IRQ_MODEL_GIC || + acpi_irq_model == ACPI_IRQ_MODEL_LPIC ? + ACPI_ACTIVE_HIGH : ACPI_ACTIVE_LOW; +#else int polarity = acpi_irq_model == ACPI_IRQ_MODEL_GIC ? ACPI_ACTIVE_HIGH : ACPI_ACTIVE_LOW; +#endif char *link = NULL; char link_desc[16]; int rc; -- GitLab