lkml.org 
[lkml]   [2015]   [Feb]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[RFC PATCH 0/3] genirq: mixing IRQF_NO_SUSPEND and wakeup sources on shared IRQs
    Date
    Hello,

    I put the IRQF_NO_SUSPEND_SAFE/IRQF_TIMER_SIBLING_OK/WHATEVER_NAME_YOU_CHOOSE
    debate aside to concentrate on another problem pointed out by Rafael and
    Mark: the fact that we cannot mix IRQF_NO_SUSPEND and wakeup sources on
    a shared IRQ line.

    This is because the wakeup code is prevailing the IRQF_NO_SUSPEND case
    and will trigger a system wakeup as soon as the IRQ line is tagged as a
    wakeup source.

    This series propose an approach to deal with such cases by doing the
    following:
    1/ Prevent any system wakeup when at least one of the IRQ user has set
    the IRQF_NO_SUSPEND flag
    2/ Adapt IRQ handlers so that they can safely be called in suspended
    state
    3/ Let drivers decide when the system should be woken up

    Let me know what you think of this approach.

    Thanks,

    Boris

    Boris Brezillon (3):
    genirq: prevent system wakeup when dealing with IRQF_NO_SUSPEND IRQs
    genirq: add helper functions to deal with wakeup on shared
    IRQF_NO_SUSPEND IRQs
    rtc: at91sam9: properly act when IRQ handler is called in suspended
    state

    drivers/rtc/rtc-at91sam9.c | 62 ++++++++++++++++++++++++++++++++++++++--------
    include/linux/interrupt.h | 3 +++
    kernel/irq/manage.c | 16 ++++++++++++
    kernel/irq/pm.c | 9 ++++++-
    4 files changed, 78 insertions(+), 12 deletions(-)

    --
    1.9.1



    \
     
     \ /
      Last update: 2015-02-24 11:01    [W:7.948 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site