|
@@ -1293,6 +1293,7 @@ static void sci_tx_dma_release(struct sci_port *s)
|
|
|
{
|
|
|
struct dma_chan *chan = s->chan_tx_saved;
|
|
|
|
|
|
+ cancel_work_sync(&s->work_tx);
|
|
|
s->chan_tx_saved = s->chan_tx = NULL;
|
|
|
s->cookie_tx = -EINVAL;
|
|
|
dmaengine_terminate_all(chan);
|
|
@@ -1548,10 +1549,9 @@ static void sci_request_dma(struct uart_port *port)
|
|
|
__func__, UART_XMIT_SIZE,
|
|
|
port->state->xmit.buf, &s->tx_dma_addr);
|
|
|
|
|
|
+ INIT_WORK(&s->work_tx, work_fn_tx);
|
|
|
s->chan_tx_saved = s->chan_tx = chan;
|
|
|
}
|
|
|
-
|
|
|
- INIT_WORK(&s->work_tx, work_fn_tx);
|
|
|
}
|
|
|
|
|
|
chan = sci_request_dma_chan(port, DMA_DEV_TO_MEM);
|