Lines Matching full:pdc
120 bool use_pdc_rx; /* enable PDC receiver */
121 short pdc_rx_idx; /* current PDC RX buffer */
122 struct atmel_dma_buffer pdc_rx[2]; /* PDC receier */
125 bool use_pdc_tx; /* enable PDC transmitter */
126 struct atmel_dma_buffer pdc_tx; /* PDC transmitter */
557 /* disable PDC transmit */ in atmel_stop_tx()
596 /* re-enable PDC transmit */ in atmel_start_tx()
618 /* enable PDC controller */ in atmel_start_rx()
636 /* disable PDC receive */ in atmel_stop_rx()
1312 * PDC receive. Just schedule the tasklet and let it in atmel_handle_receive()
1453 struct atmel_dma_buffer *pdc = &atmel_port->pdc_tx; in atmel_release_tx_pdc() local
1456 pdc->dma_addr, in atmel_release_tx_pdc()
1457 pdc->dma_size, in atmel_release_tx_pdc()
1468 struct atmel_dma_buffer *pdc = &atmel_port->pdc_tx; in atmel_tx_pdc() local
1475 xmit->tail += pdc->ofs; in atmel_tx_pdc()
1478 port->icount.tx += pdc->ofs; in atmel_tx_pdc()
1479 pdc->ofs = 0; in atmel_tx_pdc()
1483 /* disable PDC transmit */ in atmel_tx_pdc()
1488 pdc->dma_addr, in atmel_tx_pdc()
1489 pdc->dma_size, in atmel_tx_pdc()
1493 pdc->ofs = count; in atmel_tx_pdc()
1496 pdc->dma_addr + xmit->tail); in atmel_tx_pdc()
1498 /* re-enable PDC transmit */ in atmel_tx_pdc()
1517 struct atmel_dma_buffer *pdc = &atmel_port->pdc_tx; in atmel_prepare_tx_pdc() local
1520 pdc->buf = xmit->buf; in atmel_prepare_tx_pdc()
1521 pdc->dma_addr = dma_map_single(port->dev, in atmel_prepare_tx_pdc()
1522 pdc->buf, in atmel_prepare_tx_pdc()
1525 pdc->dma_size = UART_XMIT_SIZE; in atmel_prepare_tx_pdc()
1526 pdc->ofs = 0; in atmel_prepare_tx_pdc()
1599 struct atmel_dma_buffer *pdc = &atmel_port->pdc_rx[i]; in atmel_release_rx_pdc() local
1602 pdc->dma_addr, in atmel_release_rx_pdc()
1603 pdc->dma_size, in atmel_release_rx_pdc()
1605 kfree(pdc->buf); in atmel_release_rx_pdc()
1613 struct atmel_dma_buffer *pdc; in atmel_rx_from_pdc() local
1623 pdc = &atmel_port->pdc_rx[rx_idx]; in atmel_rx_from_pdc()
1624 head = atmel_uart_readl(port, ATMEL_PDC_RPR) - pdc->dma_addr; in atmel_rx_from_pdc()
1625 tail = pdc->ofs; in atmel_rx_from_pdc()
1627 /* If the PDC has switched buffers, RPR won't contain in atmel_rx_from_pdc()
1637 head = min(head, pdc->dma_size); in atmel_rx_from_pdc()
1640 dma_sync_single_for_cpu(port->dev, pdc->dma_addr, in atmel_rx_from_pdc()
1641 pdc->dma_size, DMA_FROM_DEVICE); in atmel_rx_from_pdc()
1651 tty_insert_flip_string(tport, pdc->buf + pdc->ofs, in atmel_rx_from_pdc()
1654 dma_sync_single_for_device(port->dev, pdc->dma_addr, in atmel_rx_from_pdc()
1655 pdc->dma_size, DMA_FROM_DEVICE); in atmel_rx_from_pdc()
1658 pdc->ofs = head; in atmel_rx_from_pdc()
1665 if (head >= pdc->dma_size) { in atmel_rx_from_pdc()
1666 pdc->ofs = 0; in atmel_rx_from_pdc()
1667 atmel_uart_writel(port, ATMEL_PDC_RNPR, pdc->dma_addr); in atmel_rx_from_pdc()
1668 atmel_uart_writel(port, ATMEL_PDC_RNCR, pdc->dma_size); in atmel_rx_from_pdc()
1673 } while (head >= pdc->dma_size); in atmel_rx_from_pdc()
1687 struct atmel_dma_buffer *pdc = &atmel_port->pdc_rx[i]; in atmel_prepare_rx_pdc() local
1689 pdc->buf = kmalloc(PDC_BUFFER_SIZE, GFP_KERNEL); in atmel_prepare_rx_pdc()
1690 if (pdc->buf == NULL) { in atmel_prepare_rx_pdc()
1701 pdc->dma_addr = dma_map_single(port->dev, in atmel_prepare_rx_pdc()
1702 pdc->buf, in atmel_prepare_rx_pdc()
1705 pdc->dma_size = PDC_BUFFER_SIZE; in atmel_prepare_rx_pdc()
1706 pdc->ofs = 0; in atmel_prepare_rx_pdc()
1753 /* DMA/PDC usage specification */ in atmel_init_property()
1992 /* enable PDC controller */ in atmel_startup()
2621 /* Store PDC transmit status and disable it */ in atmel_console_write()
2639 /* Restore PDC transmit status */ in atmel_console_write()