[PATCH v4 2/3] irqchip: GIC: Add support for irq_{get, set}_irqchip_state
From: Feng Kan <hidden>
Date: 2015-05-14 20:15:04
Also in:
linux-arm-msm, linux-gpio, lkml
From: Feng Kan <hidden>
Date: 2015-05-14 20:15:04
Also in:
linux-arm-msm, linux-gpio, lkml
On Thu, May 14, 2015 at 3:32 AM, Linus Walleij [off-list ref] wrote:
On Wed, May 13, 2015 at 5:44 PM, Feng Kan [off-list ref] wrote:quoted
We are using the gpio driver with gpio_key for power button. The gpio status can only be retrieved from the GIC register when the gpio is acting as a interrupt.OK I understand so much. SPISR is a status register of the state of the IRQ lines of shared peripherals. But surely the GPIO block has its own status register, so are you saying that this register is unreliable?
When the GPIO is used as interrupt, the gpio block does not report the status anymore. Which leaves us stuck with SPISR.
I can think of a few reasons, like transient IRQs etc but what is actually causing this?
I won't say the obvious.
Techically the GIC would normally be higher up the food chain, i.e. one IRQ on the GIC is cascaded to sub-IRQs on the GPIO chip by virtue of its own struct irq_chip and irqdomain. The exception is typically only systems where the GPIO block is fused with the IRQ controller so that each GPIO line has its own unique IRQ line on the primary, top-level interrupt controller. Which GPIO driver is this? Is it upstream?
Yes, it is upstream. It is the xgene slimpro gpio driver. I am starting to think that we ought to switch to use some gpio poll driver rather than using gpio-key.
Yours, Linus Walleij