From: Alexander Duyck Date: Wed, 14 Dec 2016 23:05:03 +0000 (-0800) Subject: arch/openrisc: add option to skip DMA sync as a part of mapping X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=043b42bcbbc6bc87c457b156041d74d51f6cebc2;p=openwrt%2Fstaging%2Fblogic.git arch/openrisc: 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/20161110113524.76501.87966.stgit@ahduyck-blue-test.jf.intel.com Signed-off-by: Alexander Duyck Cc: Jonas Bonn Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/arch/openrisc/kernel/dma.c b/arch/openrisc/kernel/dma.c index 140c99140649..906998bac957 100644 --- a/arch/openrisc/kernel/dma.c +++ b/arch/openrisc/kernel/dma.c @@ -141,6 +141,9 @@ or1k_map_page(struct device *dev, struct page *page, unsigned long cl; dma_addr_t addr = page_to_phys(page) + offset; + if (attrs & DMA_ATTR_SKIP_CPU_SYNC) + return addr; + switch (dir) { case DMA_TO_DEVICE: /* Flush the dcache for the requested range */