From mboxrd@z Thu Jan 1 00:00:00 1970 From: Magnus Damm Date: Wed, 13 Nov 2013 22:59:55 +0000 Subject: [PATCH 03/03] gpio: em: Use lazy disable and mask on suspend Message-Id: <20131113225955.21449.34737.sendpatchset@w520> List-Id: References: <20131113225927.21449.78044.sendpatchset@w520> In-Reply-To: <20131113225927.21449.78044.sendpatchset@w520> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-kernel@vger.kernel.org Cc: linux-sh@vger.kernel.org, linus.walleij@linaro.org, grant.likely@secretlab.ca, horms@verge.net.au, laurent.pinchart@ideasonboard.com, Magnus Damm From: Magnus Damm Set the ->irq_enable() and ->irq_disable() methods to NULL to enable lazy disable of interrupts. Also extend the code to set IRQCHIP_MASK_ON_SUSPEND which tells the core that only IRQs marked as wakeups need to stay enabled during Suspend-to-RAM. Tested on the KZM9D board with GPIO-keys. Signed-off-by: Magnus Damm --- drivers/gpio/gpio-em.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) --- 0006/drivers/gpio/gpio-em.c +++ work/drivers/gpio/gpio-em.c 2013-11-13 22:18:21.000000000 +0900 @@ -336,10 +336,8 @@ static int em_gio_probe(struct platform_ irq_chip->name = name; irq_chip->irq_mask = em_gio_irq_disable; irq_chip->irq_unmask = em_gio_irq_enable; - irq_chip->irq_enable = em_gio_irq_enable; - irq_chip->irq_disable = em_gio_irq_disable; irq_chip->irq_set_type = em_gio_irq_set_type; - irq_chip->flags = IRQCHIP_SKIP_SET_WAKE; + irq_chip->flags = IRQCHIP_SKIP_SET_WAKE | IRQCHIP_MASK_ON_SUSPEND; p->irq_domain = irq_domain_add_simple(pdev->dev.of_node, pdata->number_of_pins,