• Maya Erez's avatar
    wil6210: fix spurious interrupts in 3-msi · e10b0edd
    Maya Erez authored
    Interrupt is set in ICM (ICR & ~IMV) rising trigger.
    As the driver masks the IRQ after clearing it, there can
    be a race where an additional spurious interrupt is triggered
    when the driver unmask the IRQ.
    This can happen in case HW triggers an interrupt after the clear
    and before the mask.
    
    To prevent the second spurious interrupt the driver needs to mask the
    IRQ before reading and clearing it.
    Signed-off-by: default avatarMaya Erez <merez@codeaurora.org>
    Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
    e10b0edd
interrupt.c 25.1 KB