Re: [PATCH 2/2] pinctrl: single: remove misuse of IRQF_NO_SUSPEND flag

From: Grygorii Strashko
Date: Thu Dec 03 2015 - 13:35:44 EST


On 12/03/2015 08:13 PM, Tony Lindgren wrote:
> * Linus Walleij <linus.walleij@xxxxxxxxxx> [151201 06:07]:
>> On Fri, Nov 27, 2015 at 6:21 PM, Sudeep Holla <sudeep.holla@xxxxxxx> wrote:
>>
>>> From: Sudeep Holla <Sudeep.Holla@xxxxxxx>
>>>
>>> The IRQF_NO_SUSPEND flag is used to identify the interrupts that should
>>> be left enabled so as to allow them to work as expected during the
>>> suspend-resume cycle, but doesn't guarantee that it will wake the system
>>> from a suspended state, enable_irq_wake is recommended to be used for
>>> the wakeup.
>>>
>>> This patch removes the use of IRQF_NO_SUSPEND flags replacing it with
>>> irq_set_irq_wake instead.
>>>
>>> Cc: Linus Walleij <linus.walleij@xxxxxxxxxx>
>>> Cc: linux-gpio@xxxxxxxxxxxxxxx
>>> Signed-off-by: Sudeep Holla <sudeep.holla@xxxxxxx>
>>
>> I need Tony's ACK on this as well.
>
> At least on omaps, this controller is always powered and we never want to
> suspend it as it handles wake-up events for all the IO pins. And that
> usecase sounds exactly like what you're describing above.
>
> I don't quite follow what your suggested alternative for an interrupt
> controller is?
>
> At least we need to have the alternative patched in with this chage before
> just removing IRQF_NO_SUSPEND.
>
> The enable_irq_wake is naturally used for the consumer drivers of this
> interrupt controller and actually mostly done automatically now with the
> dev_pm_set_dedicated_wake_irq.
>

I think, this patch should not break our wake-up functionality.
It will just change the moment when pcs_irq_handler() will be called:

before this change:
- suspend_enter()
....
- arch_suspend_enable_irqs();
- ^ right here

after this change:
- suspend_enter()
....
dpm_resume_noirq()
- resume_device_irqs()
^ here

Correct? And as for me this is more safe.

--
regards,
-grygorii
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/