diff options
author | Muhammad Hamza Farooq <mfarooq@visteon.com> | 2015-09-18 13:08:30 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2015-10-04 17:36:10 +0100 |
commit | 1d3db608f933605d2dce44a0262ea94da3407465 (patch) | |
tree | d196722702b5f06ffff5c87469f9e1a9a988a326 /drivers/tty/serial/sh-sci.c | |
parent | 371cfed3116bc2ebd173fe55870f77ea1413edac (diff) |
serial: sh-sci: Call dma_async_issue_pending when transaction completes
dmaengine_submit() will not start the DMA operation, it merely adds
it to the pending queue. If the queue is no longer running, it won't be
restarted until dma_async_issue_pending() is called.
Signed-off-by: Muhammad Hamza Farooq <mfarooq@visteon.com>
[geert: Add more description]
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/serial/sh-sci.c')
-rw-r--r-- | drivers/tty/serial/sh-sci.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c index 5dcd8b382e90..84c15152e111 100644 --- a/drivers/tty/serial/sh-sci.c +++ b/drivers/tty/serial/sh-sci.c @@ -1104,6 +1104,7 @@ static void sci_rx_dma_release(struct sci_port *s, bool enable_pio) static void sci_dma_rx_complete(void *arg) { struct sci_port *s = arg; + struct dma_chan *chan = s->chan_rx; struct uart_port *port = &s->port; struct dma_async_tx_descriptor *desc; unsigned long flags; @@ -1137,6 +1138,8 @@ static void sci_dma_rx_complete(void *arg) s->active_rx = s->cookie_rx[!active]; + dma_async_issue_pending(chan); + dev_dbg(port->dev, "%s: cookie %d #%d, new active cookie %d\n", __func__, s->cookie_rx[active], active, s->active_rx); spin_unlock_irqrestore(&port->lock, flags); |