OSDN Git Service

irqchip/pdc: Setup all edge interrupts as rising edge at GIC
authorLina Iyer <ilina@codeaurora.org>
Thu, 27 Sep 2018 17:18:10 +0000 (11:18 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 13 Nov 2018 19:08:34 +0000 (11:08 -0800)
[ Upstream commit 7bae48b22c8d38c5cd50f52b6e15d134e2bb3935 ]

The PDC irqchp can convert a falling edge or level low interrupt to a
rising edge or level high interrupt at the GIC. We just need to setup
the GIC correctly. Set up the interrupt type for the IRQ_TYPE_EDGE_BOTH
as IRQ_TYPE_EDGE_RISING at the GIC.

Fixes: f55c73aef890 ("irqchip/pdc: Add PDC interrupt controller for QCOM SoCs")
Reported-by: Evan Green <evgreen@chromium.org>
Reviewed-by: Evan Green <evgreen@chromium.org>
Signed-off-by: Lina Iyer <ilina@codeaurora.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/irqchip/qcom-pdc.c

index b1b47a4..faa7d61 100644 (file)
@@ -124,6 +124,7 @@ static int qcom_pdc_gic_set_type(struct irq_data *d, unsigned int type)
                break;
        case IRQ_TYPE_EDGE_BOTH:
                pdc_type = PDC_EDGE_DUAL;
+               type = IRQ_TYPE_EDGE_RISING;
                break;
        case IRQ_TYPE_LEVEL_HIGH:
                pdc_type = PDC_LEVEL_HIGH;