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: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Cc: Ralf Baechle <ralf@linux-mips.org> Acked-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
2e25406fb8
commit
4ac4aa5cc3
1 changed files with 12 additions and 8 deletions
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue