Thread (18 messages) 18 messages, 6 authors, 2015-05-20

[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

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help