serial: 8250_omap: pause DMA only if DMA transfer in progress
authorVignesh R <vigneshr@ti.com>
Fri, 20 Jan 2017 08:16:52 +0000 (13:46 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 20 Jan 2017 13:44:37 +0000 (14:44 +0100)
commit75f54acc086940ccef8b6d67ba8537529bda104c
tree3078f13318caaa38fb8967e8a43701db1f9070bd
parentc92d781f1a5ea19708b1e1e2b85a3fbd4a738b30
serial: 8250_omap: pause DMA only if DMA transfer in progress

It is possible that DMA transfer is already complete but, completion
handler is yet to be called, when dmaengine_pause() is called in case of
error condition(like break/rx timeout). This leads to dmaengine_pause()
API to return EINVAL (as descriptor is already NULL) causing
rx_dma_broken flag to be set and effectively disabling RX DMA.
Fix this by calling dmaengine_pause() only when transfer is in progress.

Signed-off-by: Vignesh R <vigneshr@ti.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/8250/8250_omap.c