Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4ac4aa5c authored by Atsushi Nemoto's avatar Atsushi Nemoto Committed by Ralf Baechle
Browse files

DMA: txx9dmac: use dma_unmap_single if DMA_COMPL_{SRC,DEST}_UNMAP_SINGLE set



This patch does not change actual behaviour since dma_unmap_page is just
an alias of dma_unmap_single on MIPS.

Signed-off-by: default avatarAtsushi Nemoto <anemo@mba.ocn.ne.jp>
Cc: Ralf Baechle <ralf@linux-mips.org>
Acked-by: default avatarDan Williams <dan.j.williams@intel.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 2e25406f
Loading
Loading
Loading
Loading
+12 −8
Original line number Diff line number Diff line
@@ -432,23 +432,27 @@ txx9dmac_descriptor_complete(struct txx9dmac_chan *dc,
	list_splice_init(&txd->tx_list, &dc->free_list);
	list_move(&desc->desc_node, &dc->free_list);

	/*
	 * We use dma_unmap_page() regardless of how the buffers were
	 * mapped before they were submitted...
	 */
	if (!ds) {
		dma_addr_t dmaaddr;
		if (!(txd->flags & DMA_COMPL_SKIP_DEST_UNMAP)) {
			dmaaddr = is_dmac64(dc) ?
				desc->hwdesc.DAR : desc->hwdesc32.DAR;
			dma_unmap_page(chan2parent(&dc->chan), dmaaddr,
				       desc->len, DMA_FROM_DEVICE);
			if (txd->flags & DMA_COMPL_DEST_UNMAP_SINGLE)
				dma_unmap_single(chan2parent(&dc->chan),
					dmaaddr, desc->len, DMA_FROM_DEVICE);
			else
				dma_unmap_page(chan2parent(&dc->chan),
					dmaaddr, desc->len, DMA_FROM_DEVICE);
		}
		if (!(txd->flags & DMA_COMPL_SKIP_SRC_UNMAP)) {
			dmaaddr = is_dmac64(dc) ?
				desc->hwdesc.SAR : desc->hwdesc32.SAR;
			dma_unmap_page(chan2parent(&dc->chan), dmaaddr,
				       desc->len, DMA_TO_DEVICE);
			if (txd->flags & DMA_COMPL_SRC_UNMAP_SINGLE)
				dma_unmap_single(chan2parent(&dc->chan),
					dmaaddr, desc->len, DMA_TO_DEVICE);
			else
				dma_unmap_page(chan2parent(&dc->chan),
					dmaaddr, desc->len, DMA_TO_DEVICE);
		}
	}