Lines Matching refs:dma
236 struct uart_8250_dma *dma = up->dma; in omap8250_restore_regs() local
238 if (dma && dma->tx_running) { in omap8250_restore_regs()
412 if (up->dma) in omap_8250_set_termios()
577 if (up->dma) { in omap8250_irq()
615 if (up->dma) { in omap_8250_startup()
620 up->dma = NULL; in omap_8250_startup()
642 if (up->dma) in omap_8250_startup()
643 up->dma->rx_dma(up, 0); in omap_8250_startup()
662 if (up->dma) in omap_8250_shutdown()
663 up->dma->rx_dma(up, UART_IIR_RX_TIMEOUT); in omap_8250_shutdown()
672 if (up->dma) in omap_8250_shutdown()
729 struct uart_8250_dma *dma = p->dma; in __dma_rx_do_complete() local
734 dma_sync_single_for_cpu(dma->rxchan->device->dev, dma->rx_addr, in __dma_rx_do_complete()
735 dma->rx_size, DMA_FROM_DEVICE); in __dma_rx_do_complete()
737 dma->rx_running = 0; in __dma_rx_do_complete()
738 dmaengine_tx_status(dma->rxchan, dma->rx_cookie, &state); in __dma_rx_do_complete()
739 dmaengine_terminate_all(dma->rxchan); in __dma_rx_do_complete()
741 count = dma->rx_size - state.residue; in __dma_rx_do_complete()
743 tty_insert_flip_string(tty_port, dma->rx_buf, count); in __dma_rx_do_complete()
758 struct uart_8250_dma *dma = p->dma; in omap_8250_rx_dma() local
764 if (dma->rx_running) { in omap_8250_rx_dma()
765 dmaengine_pause(dma->rxchan); in omap_8250_rx_dma()
774 if (dma->rx_running) { in omap_8250_rx_dma()
775 dmaengine_pause(dma->rxchan); in omap_8250_rx_dma()
789 if (dma->rx_running) { in omap_8250_rx_dma()
790 dmaengine_pause(dma->rxchan); in omap_8250_rx_dma()
799 if (dma->rx_running) in omap_8250_rx_dma()
802 desc = dmaengine_prep_slave_single(dma->rxchan, dma->rx_addr, in omap_8250_rx_dma()
803 dma->rx_size, DMA_DEV_TO_MEM, in omap_8250_rx_dma()
808 dma->rx_running = 1; in omap_8250_rx_dma()
812 dma->rx_cookie = dmaengine_submit(desc); in omap_8250_rx_dma()
814 dma_sync_single_for_device(dma->rxchan->device->dev, dma->rx_addr, in omap_8250_rx_dma()
815 dma->rx_size, DMA_FROM_DEVICE); in omap_8250_rx_dma()
817 dma_async_issue_pending(dma->rxchan); in omap_8250_rx_dma()
826 struct uart_8250_dma *dma = p->dma; in omap_8250_dma_tx_complete() local
832 dma_sync_single_for_cpu(dma->txchan->device->dev, dma->tx_addr, in omap_8250_dma_tx_complete()
837 dma->tx_running = 0; in omap_8250_dma_tx_complete()
839 xmit->tail += dma->tx_size; in omap_8250_dma_tx_complete()
841 p->port.icount.tx += dma->tx_size; in omap_8250_dma_tx_complete()
863 dma->tx_err = 1; in omap_8250_dma_tx_complete()
873 struct uart_8250_dma *dma = p->dma; in omap_8250_tx_dma() local
880 if (dma->tx_running) in omap_8250_tx_dma()
889 if (dma->tx_err || p->capabilities & UART_CAP_RPM) { in omap_8250_tx_dma()
900 dma->tx_size = CIRC_CNT_TO_END(xmit->head, xmit->tail, UART_XMIT_SIZE); in omap_8250_tx_dma()
924 if (dma->tx_size < 4) { in omap_8250_tx_dma()
931 desc = dmaengine_prep_slave_single(dma->txchan, in omap_8250_tx_dma()
932 dma->tx_addr + xmit->tail + skip_byte, in omap_8250_tx_dma()
933 dma->tx_size - skip_byte, DMA_MEM_TO_DEV, in omap_8250_tx_dma()
940 dma->tx_running = 1; in omap_8250_tx_dma()
945 dma->tx_cookie = dmaengine_submit(desc); in omap_8250_tx_dma()
947 dma_sync_single_for_device(dma->txchan->device->dev, dma->tx_addr, in omap_8250_tx_dma()
950 dma_async_issue_pending(dma->txchan); in omap_8250_tx_dma()
951 if (dma->tx_err) in omap_8250_tx_dma()
952 dma->tx_err = 0; in omap_8250_tx_dma()
962 dma->tx_err = 1; in omap_8250_tx_dma()
1000 if (status & UART_LSR_THRE && up->dma->tx_err) { in omap_8250_dma_handle_irq()
1003 up->dma->tx_err = 0; in omap_8250_dma_handle_irq()
1155 up.dma = &priv->omap8250_dma; in omap8250_probe()
1304 if (up->dma) in omap8250_runtime_suspend()
1330 if (up->dma) in omap8250_runtime_resume()