* [patch 024/114] arch/powerpc: add option to skip DMA sync as a part of mapping
@ 2016-12-14 23:05 akpm
0 siblings, 0 replies; only message in thread
From: akpm @ 2016-12-14 23:05 UTC (permalink / raw)
To: torvalds, mm-commits, akpm, alexander.h.duyck, mpe
From: Alexander Duyck <alexander.h.duyck@intel.com>
Subject: arch/powerpc: add option to skip DMA sync as a part of mapping
This change allows us to pass DMA_ATTR_SKIP_CPU_SYNC which allows us to
avoid invoking cache line invalidation if the driver will just handle it
via a sync_for_cpu or sync_for_device call.
Link: http://lkml.kernel.org/r/20161110113534.76501.86492.stgit@ahduyck-blue-test.jf.intel.com
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Acked-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
arch/powerpc/kernel/dma.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff -puN arch/powerpc/kernel/dma.c~arch-powerpc-add-option-to-skip-dma-sync-as-a-part-of-mapping arch/powerpc/kernel/dma.c
--- a/arch/powerpc/kernel/dma.c~arch-powerpc-add-option-to-skip-dma-sync-as-a-part-of-mapping
+++ a/arch/powerpc/kernel/dma.c
@@ -203,6 +203,10 @@ static int dma_direct_map_sg(struct devi
for_each_sg(sgl, sg, nents, i) {
sg->dma_address = sg_phys(sg) + get_dma_offset(dev);
sg->dma_length = sg->length;
+
+ if (attrs & DMA_ATTR_SKIP_CPU_SYNC)
+ continue;
+
__dma_sync_page(sg_page(sg), sg->offset, sg->length, direction);
}
@@ -235,7 +239,10 @@ static inline dma_addr_t dma_direct_map_
unsigned long attrs)
{
BUG_ON(dir == DMA_NONE);
- __dma_sync_page(page, offset, size, dir);
+
+ if (!(attrs & DMA_ATTR_SKIP_CPU_SYNC))
+ __dma_sync_page(page, offset, size, dir);
+
return page_to_phys(page) + offset + get_dma_offset(dev);
}
_
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2016-12-14 23:05 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-12-14 23:05 [patch 024/114] arch/powerpc: add option to skip DMA sync as a part of mapping akpm
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.