If a gpio interrupt is already enabled, do not re-enable it again and do not clear the interrupt status. Before this patch: if an edge interrupt is marked as wakeup, the gpio sys suspend will enable it. On resume, the gpio sys resume would clear the intr_status of the wakeup irq. Thus, if this particular wakeup irq triggered and woke us up, we would lose its intr_status before calling the gpio summary handler. Now, when the summary handler is finally called, the irq handler for the wakeup interrupt is never called. With this change: we are *not* re-enabling the gpio-irq again to make sure that when the irq framework unmasks all irqs on resume, it does not clear the intr_status. Change-Id: Ia5a9c6b00173a56b1abbdd4d4821becb7311d7f6 Signed-off-by: Rohit Vaswani <rvaswani@codeaurora.org> Signed-off-by: Ajay Dudani <adudani@codeaurora.org> Signed-off-by: Iliyan Malchev <malchev@google.com>