lkml.org 
[lkml]   [2015]   [Dec]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH 2/2] pinctrl: single: remove misuse of IRQF_NO_SUSPEND flag
    From
    Date
    On 12/03/2015 08:13 PM, Tony Lindgren wrote:
    > * Linus Walleij <linus.walleij@linaro.org> [151201 06:07]:
    >> On Fri, Nov 27, 2015 at 6:21 PM, Sudeep Holla <sudeep.holla@arm.com> wrote:
    >>
    >>> From: Sudeep Holla <Sudeep.Holla@arm.com>
    >>>
    >>> 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@linaro.org>
    >>> Cc: linux-gpio@vger.kernel.org
    >>> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
    >>
    >> 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


    \
     
     \ /
      Last update: 2015-12-03 20:01    [W:3.160 / U:0.032 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site