• Brian Norris's avatar
    mwifiex: don't enable/disable IRQ 0 during suspend/resume · 2447e2ca
    Brian Norris authored
    If we don't have an out-of-band wakeup IRQ configured through DT (as
    most platforms don't), then we fall out of this function with
    'irq_wakeup == 0'. Other code (e.g., mwifiex_disable_wake() and
    mwifiex_enable_wake()) treats 'irq_wakeup >= 0' as a valid IRQ, and so
    we end up calling {enable,disable}_irq() on IRQ 0.
    
    That seems bad, so let's not do that.
    
    Same problem as fixed in this patch:
    
    https://patchwork.kernel.org/patch/9531693/
    [PATCH v2 2/3] btmrvl: set irq_bt to -1 when failed to parse it
    
    with the difference that:
    (a) this one is actually a regression and
    (b) this affects both device tree and non-device-tree systems
    
    While fixing the regression, also drop the verbosity on the parse
    failure, so we don't see this when a DT node is present but doesn't have
    an interrupt property (this is perfectly legal):
    
    [   21.999000] mwifiex_pcie 0000:01:00.0: fail to parse irq_wakeup from device tree
    
    Fixes: 853402a0 ("mwifiex: Enable WoWLAN for both sdio and pcie")
    Signed-off-by: default avatarBrian Norris <briannorris@chromium.org>
    Acked-by: default avatarRajat Jain <rajatja@google.com>
    Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
    2447e2ca
main.c 48.5 KB