Files
linux/drivers
Charanya Venkatraman 002eb41f30 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.

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>
2016-06-25 10:23:54 -07:00
..
2016-06-18 01:55:55 +02:00
2016-05-27 15:26:11 -07:00
2016-05-31 11:52:59 -07:00
2016-05-03 11:22:10 +09:00
2016-05-31 22:17:05 +05:30
2016-06-17 20:21:12 -07:00
2016-06-09 22:38:16 +02:00
2016-05-27 15:26:11 -07:00
2016-06-14 10:51:42 +02:00
2016-06-09 14:28:28 -06:00
2016-05-27 15:26:11 -07:00
2016-06-15 09:51:35 +01:00
2016-05-29 22:32:27 -07:00
2016-05-20 18:33:37 -07:00
2016-05-31 21:25:52 -06:00
2016-05-10 01:19:26 -07:00