Lines Matching full:pdc
117 bool use_pdc_rx; /* enable PDC receiver */
118 short pdc_rx_idx; /* current PDC RX buffer */
119 struct atmel_dma_buffer pdc_rx[2]; /* PDC receier */
122 bool use_pdc_tx; /* enable PDC transmitter */
123 struct atmel_dma_buffer pdc_tx; /* PDC transmitter */
554 /* disable PDC transmit */ in atmel_stop_tx()
593 /* re-enable PDC transmit */ in atmel_start_tx()
615 /* enable PDC controller */ in atmel_start_rx()
633 /* disable PDC receive */ in atmel_stop_rx()
1301 * PDC receive. Just schedule the tasklet and let it in atmel_handle_receive()
1442 struct atmel_dma_buffer *pdc = &atmel_port->pdc_tx; in atmel_release_tx_pdc() local
1445 pdc->dma_addr, in atmel_release_tx_pdc()
1446 pdc->dma_size, in atmel_release_tx_pdc()
1457 struct atmel_dma_buffer *pdc = &atmel_port->pdc_tx; in atmel_tx_pdc() local
1464 xmit->tail += pdc->ofs; in atmel_tx_pdc()
1467 port->icount.tx += pdc->ofs; in atmel_tx_pdc()
1468 pdc->ofs = 0; in atmel_tx_pdc()
1472 /* disable PDC transmit */ in atmel_tx_pdc()
1477 pdc->dma_addr, in atmel_tx_pdc()
1478 pdc->dma_size, in atmel_tx_pdc()
1482 pdc->ofs = count; in atmel_tx_pdc()
1485 pdc->dma_addr + xmit->tail); in atmel_tx_pdc()
1487 /* re-enable PDC transmit */ in atmel_tx_pdc()
1506 struct atmel_dma_buffer *pdc = &atmel_port->pdc_tx; in atmel_prepare_tx_pdc() local
1509 pdc->buf = xmit->buf; in atmel_prepare_tx_pdc()
1510 pdc->dma_addr = dma_map_single(port->dev, in atmel_prepare_tx_pdc()
1511 pdc->buf, in atmel_prepare_tx_pdc()
1514 pdc->dma_size = UART_XMIT_SIZE; in atmel_prepare_tx_pdc()
1515 pdc->ofs = 0; in atmel_prepare_tx_pdc()
1594 struct atmel_dma_buffer *pdc = &atmel_port->pdc_rx[i]; in atmel_release_rx_pdc() local
1597 pdc->dma_addr, in atmel_release_rx_pdc()
1598 pdc->dma_size, in atmel_release_rx_pdc()
1600 kfree(pdc->buf); in atmel_release_rx_pdc()
1608 struct atmel_dma_buffer *pdc; in atmel_rx_from_pdc() local
1618 pdc = &atmel_port->pdc_rx[rx_idx]; in atmel_rx_from_pdc()
1619 head = atmel_uart_readl(port, ATMEL_PDC_RPR) - pdc->dma_addr; in atmel_rx_from_pdc()
1620 tail = pdc->ofs; in atmel_rx_from_pdc()
1622 /* If the PDC has switched buffers, RPR won't contain in atmel_rx_from_pdc()
1632 head = min(head, pdc->dma_size); in atmel_rx_from_pdc()
1635 dma_sync_single_for_cpu(port->dev, pdc->dma_addr, in atmel_rx_from_pdc()
1636 pdc->dma_size, DMA_FROM_DEVICE); in atmel_rx_from_pdc()
1646 tty_insert_flip_string(tport, pdc->buf + pdc->ofs, in atmel_rx_from_pdc()
1649 dma_sync_single_for_device(port->dev, pdc->dma_addr, in atmel_rx_from_pdc()
1650 pdc->dma_size, DMA_FROM_DEVICE); in atmel_rx_from_pdc()
1653 pdc->ofs = head; in atmel_rx_from_pdc()
1660 if (head >= pdc->dma_size) { in atmel_rx_from_pdc()
1661 pdc->ofs = 0; in atmel_rx_from_pdc()
1662 atmel_uart_writel(port, ATMEL_PDC_RNPR, pdc->dma_addr); in atmel_rx_from_pdc()
1663 atmel_uart_writel(port, ATMEL_PDC_RNCR, pdc->dma_size); in atmel_rx_from_pdc()
1668 } while (head >= pdc->dma_size); in atmel_rx_from_pdc()
1688 struct atmel_dma_buffer *pdc = &atmel_port->pdc_rx[i]; in atmel_prepare_rx_pdc() local
1690 pdc->buf = kmalloc(PDC_BUFFER_SIZE, GFP_KERNEL); in atmel_prepare_rx_pdc()
1691 if (pdc->buf == NULL) { in atmel_prepare_rx_pdc()
1702 pdc->dma_addr = dma_map_single(port->dev, in atmel_prepare_rx_pdc()
1703 pdc->buf, in atmel_prepare_rx_pdc()
1706 pdc->dma_size = PDC_BUFFER_SIZE; in atmel_prepare_rx_pdc()
1707 pdc->ofs = 0; in atmel_prepare_rx_pdc()
1754 /* DMA/PDC usage specification */ in atmel_init_property()
1990 /* enable PDC controller */ in atmel_startup()
2571 /* Store PDC transmit status and disable it */ in atmel_console_write()
2589 /* Restore PDC transmit status */ in atmel_console_write()