irqchip/loongson-liointc: Support to set IRQ type for ACPI path
authorJianmin Lv <lvjianmin@loongson.cn>
Sat, 22 Oct 2022 07:59:55 +0000 (15:59 +0800)
committerMarc Zyngier <maz@kernel.org>
Sat, 26 Nov 2022 13:05:49 +0000 (13:05 +0000)
For ACPI path, the xlate callback used IRQ_TYPE_NONE and ignored
the IRQ type in intspec[1]. For supporting to set type for
IRQs of the irqdomain, intspec[1] should be used to get IRQ
type.

Signed-off-by: Jianmin Lv <lvjianmin@loongson.cn>
Reviewed-by: Huacai Chen <chenhuacai@loongson.cn>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221022075955.11726-5-lvjianmin@loongson.cn
drivers/irqchip/irq-loongson-liointc.c

index 0da8716..838c8fa 100644 (file)
@@ -167,7 +167,12 @@ static int liointc_domain_xlate(struct irq_domain *d, struct device_node *ctrlr,
        if (WARN_ON(intsize < 1))
                return -EINVAL;
        *out_hwirq = intspec[0] - GSI_MIN_CPU_IRQ;
-       *out_type = IRQ_TYPE_NONE;
+
+       if (intsize > 1)
+               *out_type = intspec[1] & IRQ_TYPE_SENSE_MASK;
+       else
+               *out_type = IRQ_TYPE_NONE;
+
        return 0;
 }