• Thomas Gleixner's avatar
    arm: mmp: Remove pointless fiddling with irq internals · 49f3fbc7
    Thomas Gleixner authored
    The pm-mmp2 and pm-pxa910 power management related irq_set_wake
    callbacks fiddle pointlessly with the irq actions for no reason except
    for lack of understanding how the wakeup mechanism works.
    
    On supsend the core disables all interrupts lazily, i.e. it does not
    mask them at the irq controller level. So any interrupt which is
    firing during suspend will mark the corresponding interrupt line as
    pending. Just before the core powers down it checks whether there are
    interrupts pending from interrupt lines which are marked as wakeup
    sources and if so it aborts the suspend and resends the interrupts.
    If there was no interrupt at this point, the cpu goes into suspend
    with these interrupts unmasked.
    
    The IRQF_NO_SUSPEND flag for interrupt actions is a totally different
    mechanism. That allows the device driver to prevent the core from
    disabling the interrupt despite the fact that it is not marked as a
    wakeup source. This has nothing to do with the case at hand. It was
    introduced for special cases where lazy disable is not possible.
    
    Remove the nonsense along with the braindamaged boundary check. The
    core code does NOT call these functions out of boundary.
    
    Add a FIXME comment to an unhandled error path which merily printks
    some useless blurb instead of returning a proper error code.
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: arm <linux-arm-kernel@lists.infradead.org>
    Cc: Eric Miao <eric.y.miao@gmail.com>
    Cc: Haojian Zhuang <haojian.zhuang@gmail.com>
    Cc: Russell King <linux@arm.linux.org.uk>
    Link: http://lkml.kernel.org/r/20140223212737.214342433@linutronix.deSigned-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    49f3fbc7
pm-pxa910.c 6.87 KB