Thread (39 messages) flat view 39 messages, 6 authors, 2017-06-25

Re: [PATCH 3/6] irqchip: irq-mvebu-gicp: new driver for Marvell GICP

From: Thomas Petazzoni <hidden>
Date: 2017-05-30 15:01:50
Also in: linux-arm-kernel, lkml

Hello,

On Tue, 30 May 2017 14:55:57 +0100, Marc Zyngier wrote:
quoted
+	for (i = 0; i < GICP_INT_COUNT; i++)
+		writel(i, regs + GICP_CLRSPI_NSR_OFFSET);  
What does this do on an edge interrupt?
I guess nothing. What the ICU does is:

 * For level interrupts: when the interrupt wire is asserted, write to
   SETNSR, when the interrupt wire is deasserted, write to CLRNSR

 * For edge interrupts: only the interrupt assertion causes a write to
   SETNSR.
I bet this doesn't have any effect
Indeed. But do we care? Can an edge interrupt be left pending from the
firmware?
, so you may want to use the irq_set_irqchip_state() API to clear a
potential pending state instead (and you may want to wire it in the
ICU driver itself as well).
I'm not sure how to use this irq_set_irqchip_state() API. I guess it
needs a virq that corresponds to the GIC SPI interrupt, and I'm not
sure how to get that.

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help