mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
serial: fsl_lpuart: update RX timer on successful DMA transfer
To end a DMA transfer which did not consume a whole buffer (e.g. one character only), a RX timer is used. When lots of data are received the DMA transfer will complete and setup another DMA transfer, which in turn might complete again. In this cases, it is not necessary to abort the DMA transfers using the RX timer. This change pushes the RX timer timeout into the future each time a DMA transfer completed. Aborting the DMA was not very harmful, since the next received character lead to setup of another RX DMA. Signed-off-by: Stefan Agner <stefan@agner.ch> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
4a818c4396
commit
011f5bde62
1 changed files with 1 additions and 0 deletions
|
@ -462,6 +462,7 @@ static void lpuart_dma_rx_complete(void *arg)
|
|||
unsigned long flags;
|
||||
|
||||
async_tx_ack(sport->dma_rx_desc);
|
||||
mod_timer(&sport->lpuart_timer, jiffies + sport->dma_rx_timeout);
|
||||
|
||||
spin_lock_irqsave(&sport->port.lock, flags);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue