msm_serial_hs: Fix Tx path issues during uart shutdown
UART queues tx transfer request to ADM and upon getting completion callback from ADM, schedules tx tasklet in which it enables the Tx Ready Interrupt and waits for it. On Tx ready interrupt tx dma_in_flight is set to zero indicating no more tx data is pending. This would cause corner case where if uart shutdown function checks dma_in_flight flag between dmov callback and Tx Ready interrupt, then this may cause uart shutdown function queuing dmov flush for the completed Tx command and with this dmov flush callback never be called. To fix this issue, move the dma_in_flight flag reset from Tx Ready interrupt to dmov callback. To avoid issues if any uart clients submitting any Tx requests after uart shutdown, add is_shutdown flag and check before tx command submission. CRs-Fixed: 476745 Change-Id: I05314cf2f8361109302dbc0ddcfb834e9034eab5 Signed-off-by:Saket Saurabh <ssaurabh@codeaurora.org> Signed-off-by:
Prasad Sodagudi <psodagud@codeaurora.org>
Loading
Please sign in to comment