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 */
550 /* disable PDC transmit */ in atmel_stop_tx()
589 /* re-enable PDC transmit */ in atmel_start_tx()
611 /* enable PDC controller */ in atmel_start_rx()
629 /* disable PDC receive */ in atmel_stop_rx()
1311 * PDC receive. Just schedule the tasklet and let it in atmel_handle_receive()
1452 struct atmel_dma_buffer *pdc = &atmel_port->pdc_tx; in atmel_release_tx_pdc() local
1455 pdc->dma_addr, in atmel_release_tx_pdc()
1456 pdc->dma_size, in atmel_release_tx_pdc()
1467 struct atmel_dma_buffer *pdc = &atmel_port->pdc_tx; in atmel_tx_pdc() local
1474 xmit->tail += pdc->ofs; in atmel_tx_pdc()
1477 port->icount.tx += pdc->ofs; in atmel_tx_pdc()
1478 pdc->ofs = 0; in atmel_tx_pdc()
1482 /* disable PDC transmit */ in atmel_tx_pdc()
1487 pdc->dma_addr, in atmel_tx_pdc()
1488 pdc->dma_size, in atmel_tx_pdc()
1492 pdc->ofs = count; in atmel_tx_pdc()
1495 pdc->dma_addr + xmit->tail); in atmel_tx_pdc()
1497 /* re-enable PDC transmit */ in atmel_tx_pdc()
1516 struct atmel_dma_buffer *pdc = &atmel_port->pdc_tx; in atmel_prepare_tx_pdc() local
1519 pdc->buf = xmit->buf; in atmel_prepare_tx_pdc()
1520 pdc->dma_addr = dma_map_single(port->dev, in atmel_prepare_tx_pdc()
1521 pdc->buf, in atmel_prepare_tx_pdc()
1524 pdc->dma_size = UART_XMIT_SIZE; in atmel_prepare_tx_pdc()
1525 pdc->ofs = 0; in atmel_prepare_tx_pdc()
1604 struct atmel_dma_buffer *pdc = &atmel_port->pdc_rx[i]; in atmel_release_rx_pdc() local
1607 pdc->dma_addr, in atmel_release_rx_pdc()
1608 pdc->dma_size, in atmel_release_rx_pdc()
1610 kfree(pdc->buf); in atmel_release_rx_pdc()
1618 struct atmel_dma_buffer *pdc; in atmel_rx_from_pdc() local
1628 pdc = &atmel_port->pdc_rx[rx_idx]; in atmel_rx_from_pdc()
1629 head = atmel_uart_readl(port, ATMEL_PDC_RPR) - pdc->dma_addr; in atmel_rx_from_pdc()
1630 tail = pdc->ofs; in atmel_rx_from_pdc()
1632 /* If the PDC has switched buffers, RPR won't contain in atmel_rx_from_pdc()
1642 head = min(head, pdc->dma_size); in atmel_rx_from_pdc()
1645 dma_sync_single_for_cpu(port->dev, pdc->dma_addr, in atmel_rx_from_pdc()
1646 pdc->dma_size, DMA_FROM_DEVICE); in atmel_rx_from_pdc()
1656 tty_insert_flip_string(tport, pdc->buf + pdc->ofs, in atmel_rx_from_pdc()
1659 dma_sync_single_for_device(port->dev, pdc->dma_addr, in atmel_rx_from_pdc()
1660 pdc->dma_size, DMA_FROM_DEVICE); in atmel_rx_from_pdc()
1663 pdc->ofs = head; in atmel_rx_from_pdc()
1670 if (head >= pdc->dma_size) { in atmel_rx_from_pdc()
1671 pdc->ofs = 0; in atmel_rx_from_pdc()
1672 atmel_uart_writel(port, ATMEL_PDC_RNPR, pdc->dma_addr); in atmel_rx_from_pdc()
1673 atmel_uart_writel(port, ATMEL_PDC_RNCR, pdc->dma_size); in atmel_rx_from_pdc()
1678 } while (head >= pdc->dma_size); in atmel_rx_from_pdc()
1698 struct atmel_dma_buffer *pdc = &atmel_port->pdc_rx[i]; in atmel_prepare_rx_pdc() local
1700 pdc->buf = kmalloc(PDC_BUFFER_SIZE, GFP_KERNEL); in atmel_prepare_rx_pdc()
1701 if (pdc->buf == NULL) { in atmel_prepare_rx_pdc()
1712 pdc->dma_addr = dma_map_single(port->dev, in atmel_prepare_rx_pdc()
1713 pdc->buf, in atmel_prepare_rx_pdc()
1716 pdc->dma_size = PDC_BUFFER_SIZE; in atmel_prepare_rx_pdc()
1717 pdc->ofs = 0; in atmel_prepare_rx_pdc()
1764 /* DMA/PDC usage specification */ in atmel_init_property()
2000 /* enable PDC controller */ in atmel_startup()
2581 /* Store PDC transmit status and disable it */ in atmel_console_write()
2599 /* Restore PDC transmit status */ in atmel_console_write()