|
@@ -1425,6 +1425,21 @@ static int tegra_dma_probe(struct platform_device *pdev)
|
|
|
tegra_dma_free_chan_resources;
|
|
|
tdma->dma_dev.device_prep_slave_sg = tegra_dma_prep_slave_sg;
|
|
|
tdma->dma_dev.device_prep_dma_cyclic = tegra_dma_prep_dma_cyclic;
|
|
|
+ tdma->dma_dev.src_addr_widths = BIT(DMA_SLAVE_BUSWIDTH_1_BYTE) |
|
|
|
+ BIT(DMA_SLAVE_BUSWIDTH_2_BYTES) |
|
|
|
+ BIT(DMA_SLAVE_BUSWIDTH_4_BYTES) |
|
|
|
+ BIT(DMA_SLAVE_BUSWIDTH_8_BYTES);
|
|
|
+ tdma->dma_dev.dst_addr_widths = BIT(DMA_SLAVE_BUSWIDTH_1_BYTE) |
|
|
|
+ BIT(DMA_SLAVE_BUSWIDTH_2_BYTES) |
|
|
|
+ BIT(DMA_SLAVE_BUSWIDTH_4_BYTES) |
|
|
|
+ BIT(DMA_SLAVE_BUSWIDTH_8_BYTES);
|
|
|
+ tdma->dma_dev.directions = BIT(DMA_DEV_TO_MEM) | BIT(DMA_MEM_TO_DEV);
|
|
|
+ /*
|
|
|
+ * XXX The hardware appears to support
|
|
|
+ * DMA_RESIDUE_GRANULARITY_BURST-level reporting, but it's
|
|
|
+ * only used by this driver during tegra_dma_terminate_all()
|
|
|
+ */
|
|
|
+ tdma->dma_dev.residue_granularity = DMA_RESIDUE_GRANULARITY_SEGMENT;
|
|
|
tdma->dma_dev.device_config = tegra_dma_slave_config;
|
|
|
tdma->dma_dev.device_terminate_all = tegra_dma_terminate_all;
|
|
|
tdma->dma_dev.device_tx_status = tegra_dma_tx_status;
|