On Wed, May 13, 2015 at 5:44 PM, Feng Kan <fkan@xxxxxxx> wrote: > 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? I can think of a few reasons, like transient IRQs etc but what is actually causing this? 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? Yours, Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html