diff options
| author | Charanya Venkatraman <charanya@codeaurora.org> | 2016-06-07 15:58:41 +0530 |
|---|---|---|
| committer | Satya Durga Srinivasu Prabhala <satyap@codeaurora.org> | 2016-08-11 18:20:34 -0700 |
| commit | bca0ca6799379a383aafcae31dac9907947504b9 (patch) | |
| tree | b6426159150e9851ef9b828ec8f5b67e3a586c9f /tools/perf/scripts/python | |
| parent | 46afda9143124c7d6cdc99e365785d7dacae8898 (diff) | |
tty:serial:msm:Do not restore Rx interrupts in DMA
Avoid data corruption issues that result in CRC errors during file
transfers over serial ports at higher baud rates.
The current msm_serial driver masks the FIFO Rx interrupts in
msm_start_rx_dma() since Rx FIFO interrupts are not required in DMA
mode. However, msm_complete_rx_dma() re-enables the Rx FIFO interrupts
which could cause RXSTALE event to be processed when a TXLEV interrupt
occurs.
The following is the sequence of events that could occur resulting in
data corruption.
msm_start_rx_dma -> msm_complete_rx_dma -->
spin_unlock_irqrestore(&port->lock) -->
msm_uart_irq()(For TXLEV interrupt) --> msm_handle_rx_dm() (Read from
FIFO resulting in data corruption)
The patch fixes the issue by not restoring the RXLEV and RXSTALE
interrupts in msm_complete_rx_dma(). These interrupts are required only
in FIFO mode.
CRs-Fixed: 1053499
Change-Id: Ib05d8a73a516d7591868c87fd60ff227835d8609
Signed-off-by: Charanya Venkatraman <charanya@codeaurora.org>
Acked-by: Andy Gross <andy.gross@linaro.org>
Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Git-commit: 002eb41f303e007011aecba25ea6de25a4ed475f
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions
