diff mbox

[v2] genirq: Set IRQCHIP_SKIP_SET_WAKE flag for dummy_irq_chip

Message ID 552E1DD3.4040106@ti.com (mailing list archive)
State New, archived
Headers show

Commit Message

Roger Quadros April 15, 2015, 8:14 a.m. UTC
Without this system suspend is broken on systems that have
drivers calling enable/disable_irq_wake() for interrupts based off
the dummy irq hook.
(e.g. drivers/gpio/gpio-pcf857x.c)

http://article.gmane.org/gmane.linux.kernel/1879035

Signed-off-by: Roger Quadros <rogerq@ti.com>
---
 kernel/irq/dummychip.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Gregory CLEMENT April 15, 2015, 9:29 a.m. UTC | #1
On 15/04/2015 10:14, Roger Quadros wrote:
> Without this system suspend is broken on systems that have
> drivers calling enable/disable_irq_wake() for interrupts based off
> the dummy irq hook.
> (e.g. drivers/gpio/gpio-pcf857x.c)
> 
> http://article.gmane.org/gmane.linux.kernel/1879035
> 
> Signed-off-by: Roger Quadros <rogerq@ti.com>

FWIW:

Reviewed-by: Gregory CLEMENT <gregory.clement@free-electrons.com>


> ---
>  kernel/irq/dummychip.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/kernel/irq/dummychip.c b/kernel/irq/dummychip.c
> index 988dc58..2feb6fe 100644
> --- a/kernel/irq/dummychip.c
> +++ b/kernel/irq/dummychip.c
> @@ -57,5 +57,6 @@ struct irq_chip dummy_irq_chip = {
>  	.irq_ack	= noop,
>  	.irq_mask	= noop,
>  	.irq_unmask	= noop,
> +	.flags		= IRQCHIP_SKIP_SET_WAKE,
>  };
>  EXPORT_SYMBOL_GPL(dummy_irq_chip);
>
Geert Uytterhoeven May 11, 2015, 10:50 a.m. UTC | #2
On Wed, Apr 15, 2015 at 10:14 AM, Roger Quadros <rogerq@ti.com> wrote:
> Without this system suspend is broken on systems that have
> drivers calling enable/disable_irq_wake() for interrupts based off
> the dummy irq hook.

Good to see this was applied. Still, I think no_irq_chip should also be
fixed, cfr. my patch "genirq: Set IRQCHIP_SKIP_SET_WAKE for no_irq_chip and
dummy_irq_chip" (https://lkml.org/lkml/2015/1/12/506 is down, but
https://patchwork.ozlabs.org/patch/427788/ works)

> (e.g. drivers/gpio/gpio-pcf857x.c)

Please note the particular pfc857x.c case was fixed by commit b80eef95beb04760
("gpio: pcf857x: Propagate wake-up setting to parent irq controller"), as that
driver has other problems. Now it no longer uses dummy_irq_chip.

> http://article.gmane.org/gmane.linux.kernel/1879035
>
> Signed-off-by: Roger Quadros <rogerq@ti.com>
> ---
>  kernel/irq/dummychip.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/kernel/irq/dummychip.c b/kernel/irq/dummychip.c
> index 988dc58..2feb6fe 100644
> --- a/kernel/irq/dummychip.c
> +++ b/kernel/irq/dummychip.c
> @@ -57,5 +57,6 @@ struct irq_chip dummy_irq_chip = {
>         .irq_ack        = noop,
>         .irq_mask       = noop,
>         .irq_unmask     = noop,
> +       .flags          = IRQCHIP_SKIP_SET_WAKE,
>  };
>  EXPORT_SYMBOL_GPL(dummy_irq_chip);
> --
> 2.1.0


Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Roger Quadros May 11, 2015, 11:14 a.m. UTC | #3
Hi Geert,

On 11/05/15 13:50, Geert Uytterhoeven wrote:
> On Wed, Apr 15, 2015 at 10:14 AM, Roger Quadros <rogerq@ti.com> wrote:
>> Without this system suspend is broken on systems that have
>> drivers calling enable/disable_irq_wake() for interrupts based off
>> the dummy irq hook.
>
> Good to see this was applied. Still, I think no_irq_chip should also be
> fixed, cfr. my patch "genirq: Set IRQCHIP_SKIP_SET_WAKE for no_irq_chip and

I don't see why not so can you please send a patch to add that? Thanks.

cheers,
-roger

> dummy_irq_chip" (https://lkml.org/lkml/2015/1/12/506 is down, but
> https://patchwork.ozlabs.org/patch/427788/ works)
>
>> (e.g. drivers/gpio/gpio-pcf857x.c)
>
> Please note the particular pfc857x.c case was fixed by commit b80eef95beb04760
> ("gpio: pcf857x: Propagate wake-up setting to parent irq controller"), as that
> driver has other problems. Now it no longer uses dummy_irq_chip.
>
>> http://article.gmane.org/gmane.linux.kernel/1879035
>>
>> Signed-off-by: Roger Quadros <rogerq@ti.com>
>> ---
>>   kernel/irq/dummychip.c | 1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/kernel/irq/dummychip.c b/kernel/irq/dummychip.c
>> index 988dc58..2feb6fe 100644
>> --- a/kernel/irq/dummychip.c
>> +++ b/kernel/irq/dummychip.c
>> @@ -57,5 +57,6 @@ struct irq_chip dummy_irq_chip = {
>>          .irq_ack        = noop,
>>          .irq_mask       = noop,
>>          .irq_unmask     = noop,
>> +       .flags          = IRQCHIP_SKIP_SET_WAKE,
>>   };
>>   EXPORT_SYMBOL_GPL(dummy_irq_chip);
>> --
>> 2.1.0
>
>
> Gr{oetje,eeting}s,
>
>                          Geert
>
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
>
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
>                                  -- Linus Torvalds
>
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/kernel/irq/dummychip.c b/kernel/irq/dummychip.c
index 988dc58..2feb6fe 100644
--- a/kernel/irq/dummychip.c
+++ b/kernel/irq/dummychip.c
@@ -57,5 +57,6 @@  struct irq_chip dummy_irq_chip = {
 	.irq_ack	= noop,
 	.irq_mask	= noop,
 	.irq_unmask	= noop,
+	.flags		= IRQCHIP_SKIP_SET_WAKE,
 };
 EXPORT_SYMBOL_GPL(dummy_irq_chip);