Lines Matching refs:tx_dma
125 struct sprd_uart_dma tx_dma;
213 dmaengine_pause(sp->tx_dma.chn);
215 dmaengine_tx_status(sp->tx_dma.chn, sp->tx_dma.cookie, &state);
217 trans_len = state.residue - sp->tx_dma.phys_addr;
220 dma_unmap_single(port->dev, sp->tx_dma.phys_addr,
221 sp->tx_dma.trans_len, DMA_TO_DEVICE);
224 dmaengine_terminate_all(sp->tx_dma.chn);
225 sp->tx_dma.trans_len = 0;
234 sp->tx_dma.trans_len =
237 sp->tx_dma.phys_addr = dma_map_single(port->dev,
239 sp->tx_dma.trans_len,
241 return dma_mapping_error(port->dev, sp->tx_dma.phys_addr);
253 dma_unmap_single(port->dev, sp->tx_dma.phys_addr,
254 sp->tx_dma.trans_len, DMA_TO_DEVICE);
256 xmit->tail = (xmit->tail + sp->tx_dma.trans_len) & (UART_XMIT_SIZE - 1);
257 port->icount.tx += sp->tx_dma.trans_len;
264 sp->tx_dma.trans_len = 0;
303 u32 burst = sp->tx_dma.trans_len > SPRD_TX_FIFO_FULL ?
304 SPRD_TX_FIFO_FULL : sp->tx_dma.trans_len;
313 ret = dmaengine_slave_config(sp->tx_dma.chn, &cfg);
317 return sprd_uart_dma_submit(port, &sp->tx_dma, sp->tx_dma.trans_len,
339 if (sp->tx_dma.trans_len)
343 sp->tx_dma.trans_len = 0;
488 if (sp->tx_dma.enable)
489 dma_release_channel(sp->tx_dma.chn);
491 sp->tx_dma.enable = false;
500 sp->tx_dma.enable = true;
503 sp->tx_dma.chn = dma_request_chan(port->dev, "tx");
504 if (IS_ERR(sp->tx_dma.chn)) {
506 PTR_ERR(sp->tx_dma.chn));
507 sp->tx_dma.enable = false;
524 if (sp->tx_dma.enable) {
545 if (sp->tx_dma.enable) {
699 if (!(sp->rx_dma.enable || sp->tx_dma.enable))