• Maya Erez's avatar
    wil6210: fix missed MISC mbox interrupt · 5aa61f24
    Maya Erez authored
    [ Upstream commit 7441be71 ]
    
    When MISC interrupt is triggered due to HALP bit, in parallel
    to mbox events handling by the MISC threaded IRQ, new mbox
    interrupt can be missed in the following scenario:
    1. MISC ICR is read in the IRQ handler
    2. Threaded IRQ is completed and all MISC interrupts are unmasked
    3. mbox interrupt is set by FW
    4. HALP is masked
    The mbox interrupt in step 3 can be missed due to constant high level
    of ICM.
    Masking all MISC IRQs instead of masking only HALP bit in step 4
    will guarantee that ICM will drop to 0 and interrupt will be triggered
    once MISC interrupts will be unmasked.
    Signed-off-by: default avatarMaya Erez <merez@codeaurora.org>
    Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
    Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
    5aa61f24
interrupt.c 24.9 KB