• Sinan Kaya's avatar
    dmaengine: qcom_hidma: check pending interrupts · 38680bc6
    Sinan Kaya authored
    Driver is missing the interrupts if two requests are queued up at the same
    time as the interrupt handler is servicing a request that was just
    delivered.
    
    The ISR clears the interrupt at the end but it could be clearing the
    interrupt for an outstanding event. Therefore, second interrupt never
    arrives.
    
    Clear the interrupt first and then check for completions.
    
    Also, make sure that request start and interrupt clear do not overlap in
    time by using a spinlock.
    Signed-off-by: default avatarSinan Kaya <okaya@codeaurora.org>
    Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
    38680bc6
hidma_ll.c 23.3 KB