2013-05-31 21:45:04

by Kevin Hilman

[permalink] [raw]
Subject: [PATCH] mfd: twl4030: allow IRQ wake enable to succeed on subchip IRQs

The genirq IRQ wake method will default to failure if the irq_chip
does not provide a set_wake method. However, for TWL4030 sub-chip
IRQs, we want the wake enable to succeed even though we don't provide
a set_wake method. This allows sub-chip IRQs to still be flagged as
wakeup capable, and allow them to wakeup from suspend (or abort
suspend if they fire during suspend.)

To fix, use the IRQCHIP_SKIP_SET_WAKE flag in the irq_chip.

Signed-off-by: Kevin Hilman <[email protected]>
---
drivers/mfd/twl4030-irq.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/mfd/twl4030-irq.c b/drivers/mfd/twl4030-irq.c
index a5f9888..3fa7df2 100644
--- a/drivers/mfd/twl4030-irq.c
+++ b/drivers/mfd/twl4030-irq.c
@@ -573,6 +573,7 @@ static struct irq_chip twl4030_sih_irq_chip = {
.irq_set_type = twl4030_sih_set_type,
.irq_bus_lock = twl4030_sih_bus_lock,
.irq_bus_sync_unlock = twl4030_sih_bus_sync_unlock,
+ .flags = IRQCHIP_SKIP_SET_WAKE,
};

/*----------------------------------------------------------------------*/
--
1.8.2


2013-06-17 23:47:28

by Samuel Ortiz

[permalink] [raw]
Subject: Re: [PATCH] mfd: twl4030: allow IRQ wake enable to succeed on subchip IRQs

Hi Kevin,

On Fri, May 31, 2013 at 02:44:54PM -0700, Kevin Hilman wrote:
> The genirq IRQ wake method will default to failure if the irq_chip
> does not provide a set_wake method. However, for TWL4030 sub-chip
> IRQs, we want the wake enable to succeed even though we don't provide
> a set_wake method. This allows sub-chip IRQs to still be flagged as
> wakeup capable, and allow them to wakeup from suspend (or abort
> suspend if they fire during suspend.)
>
> To fix, use the IRQCHIP_SKIP_SET_WAKE flag in the irq_chip.
>
> Signed-off-by: Kevin Hilman <[email protected]>
> ---
> drivers/mfd/twl4030-irq.c | 1 +
> 1 file changed, 1 insertion(+)
Applied to mfd-next, thanks.

Cheers,
Samuel.

--
Intel Open Source Technology Centre
http://oss.intel.com/