{"id":806269,"url":"http://patchwork.ozlabs.org/api/1.0/patches/806269/?format=json","project":{"id":2,"url":"http://patchwork.ozlabs.org/api/1.0/projects/2/?format=json","name":"Linux PPC development","link_name":"linuxppc-dev","list_id":"linuxppc-dev.lists.ozlabs.org","list_email":"linuxppc-dev@lists.ozlabs.org","web_url":"https://github.com/linuxppc/wiki/wiki","scm_url":"https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git","webscm_url":"https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/"},"msgid":"<20170827161032.22772-7-hch@lst.de>","date":"2017-08-27T16:10:26","name":"[06/12] microblaze: make dma_cache_sync a no-op","commit_ref":null,"pull_url":null,"state":"not-applicable","archived":false,"hash":"e582950d52204cfd14781adf358c7ae159f0bff9","submitter":{"id":82,"url":"http://patchwork.ozlabs.org/api/1.0/people/82/?format=json","name":"Christoph Hellwig","email":"hch@lst.de"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linuxppc-dev/patch/20170827161032.22772-7-hch@lst.de/mbox/","series":[{"id":29,"url":"http://patchwork.ozlabs.org/api/1.0/series/29/?format=json","date":"2017-08-27T16:10:24","name":"[01/12] floppy: consolidate the dummy fd_cacheflush definition","version":1,"mbox":"http://patchwork.ozlabs.org/series/29/mbox/"}],"check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/806269/checks/","tags":{},"headers":{"Return-Path":"<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org>","X-Original-To":["patchwork-incoming@ozlabs.org","linuxppc-dev@lists.ozlabs.org"],"Delivered-To":["patchwork-incoming@ozlabs.org","linuxppc-dev@lists.ozlabs.org"],"Received":["from lists.ozlabs.org (lists.ozlabs.org [103.22.144.68])\n\t(using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xgKwB0KxHz9sDB\n\tfor <patchwork-incoming@ozlabs.org>;\n\tMon, 28 Aug 2017 02:23:54 +1000 (AEST)","from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 3xgKw96FjlzDqh0\n\tfor <patchwork-incoming@ozlabs.org>;\n\tMon, 28 Aug 2017 02:23:53 +1000 (AEST)","from bombadil.infradead.org (bombadil.infradead.org\n\t[65.50.211.133])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 3xgKdG0Mh5zDqZr\n\tfor <linuxppc-dev@lists.ozlabs.org>;\n\tMon, 28 Aug 2017 02:10:58 +1000 (AEST)","from clnet-p099-196.ikbnet.co.at ([83.175.99.196] helo=localhost)\n\tby bombadil.infradead.org with esmtpsa (Exim 4.87 #1 (Red Hat\n\tLinux)) id 1dm09D-0006sa-Fc; Sun, 27 Aug 2017 16:10:51 +0000"],"Authentication-Results":["ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=infradead.org header.i=@infradead.org\n\theader.b=\"mIBuu55f\"; dkim-atps=neutral","lists.ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=infradead.org header.i=@infradead.org\n\theader.b=\"mIBuu55f\"; dkim-atps=neutral","lists.ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=infradead.org header.i=@infradead.org\n\theader.b=\"mIBuu55f\"; dkim-atps=neutral"],"DKIM-Signature":"v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;\n\td=infradead.org; s=bombadil.20170209;\n\th=References:In-Reply-To:Message-Id:\n\tDate:Subject:Cc:To:From:Sender:Reply-To:MIME-Version:Content-Type:\n\tContent-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:\n\tResent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:\n\tList-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive;\n\tbh=QzLgKMsQsKFkSCqcFHKHv1qAA9jwvSKq+hTWr4WAAPE=;\n\tb=mIBuu55fQ6hYyBky4XBYXlk49\n\tW2EfqBiy2NhU5gsnYjq+gHgWU/WpMjCHo9USmJ1UPQgn6OiYIiZP26Cf3QlruI87mzJF6yrbWK70e\n\tMU5ikf1VThYBFcQQjp9s566z5lQYUGcHonUm+HxmHq7bxAP040XuYQRqeG6HYv/5wCWpl0Aiw5h0s\n\t0IIhPkQZru1m9N1/8GlaZ0Vzg/Ivkv9ATWHLudrjWXYXp8FG6h3UrfSw5LQWFeNhHsrqiIj4J8DdC\n\thfjXsJlCXyev2UKCPtdnxQ7FRGkcwEZnI9jWEv2lwTNncMZ7r1pI5F6rItmnzBOj+DOn4NF/p0djG\n\tn4136nZjA==;","From":"Christoph Hellwig <hch@lst.de>","To":"iommu@lists.linux-foundation.org","Subject":"[PATCH 06/12] microblaze: make dma_cache_sync a no-op","Date":"Sun, 27 Aug 2017 18:10:26 +0200","Message-Id":"<20170827161032.22772-7-hch@lst.de>","X-Mailer":"git-send-email 2.11.0","In-Reply-To":"<20170827161032.22772-1-hch@lst.de>","References":"<20170827161032.22772-1-hch@lst.de>","X-SRS-Rewrite":"SMTP reverse-path rewritten from <hch@infradead.org> by\n\tbombadil.infradead.org. See http://www.infradead.org/rpr.html","X-BeenThere":"linuxppc-dev@lists.ozlabs.org","X-Mailman-Version":"2.1.23","Precedence":"list","List-Id":"Linux on PowerPC Developers Mail List\n\t<linuxppc-dev.lists.ozlabs.org>","List-Unsubscribe":"<https://lists.ozlabs.org/options/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=unsubscribe>","List-Archive":"<http://lists.ozlabs.org/pipermail/linuxppc-dev/>","List-Post":"<mailto:linuxppc-dev@lists.ozlabs.org>","List-Help":"<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=help>","List-Subscribe":"<https://lists.ozlabs.org/listinfo/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=subscribe>","Cc":"Chris Zankel <chris@zankel.net>, Michal Simek <monstr@monstr.eu>,\n\tlinux-ia64@vger.kernel.org, linux-mips@linux-mips.org,\n\tlinux-sh@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,\n\tlinux-xtensa@linux-xtensa.org, x86@kernel.org,\n\tlinux-kernel@vger.kernel.org, \n\tDavid Howells <dhowells@redhat.com>, Max Filippov <jcmvbkbc@gmail.com>,\n\tGuan Xuetao <gxt@mprc.pku.edu.cn>, Robin Murphy <robin.murphy@arm.com>,\n\tMarek Szyprowski <m.szyprowski@samsung.com>","Errors-To":"linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org","Sender":"\"Linuxppc-dev\"\n\t<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org>"},"content":"microblaze does not implement DMA_ATTR_NON_CONSISTENT allocations, so it\ndoesn't make any sense to do any work in dma_cache_sync given that it\nmust be a no-op when dma_alloc_attrs returns coherent memory.\n\nThis also allows moving __dma_sync out of the microblaze asm/dma-mapping.h\nand thus greatly reduce the amount of includes there.\n\nSigned-off-by: Christoph Hellwig <hch@lst.de>\n---\n arch/microblaze/include/asm/dma-mapping.h | 34 -------------------------------\n arch/microblaze/kernel/dma.c              | 17 ++++++++++++++++\n 2 files changed, 17 insertions(+), 34 deletions(-)","diff":"diff --git a/arch/microblaze/include/asm/dma-mapping.h b/arch/microblaze/include/asm/dma-mapping.h\nindex e15cd2f76e23..ad448e4aedb6 100644\n--- a/arch/microblaze/include/asm/dma-mapping.h\n+++ b/arch/microblaze/include/asm/dma-mapping.h\n@@ -16,22 +16,6 @@\n #define _ASM_MICROBLAZE_DMA_MAPPING_H\n \n /*\n- * See Documentation/DMA-API-HOWTO.txt and\n- * Documentation/DMA-API.txt for documentation.\n- */\n-\n-#include <linux/types.h>\n-#include <linux/cache.h>\n-#include <linux/mm.h>\n-#include <linux/scatterlist.h>\n-#include <linux/dma-debug.h>\n-#include <asm/io.h>\n-#include <asm/cacheflush.h>\n-\n-#define __dma_alloc_coherent(dev, gfp, size, handle)\tNULL\n-#define __dma_free_coherent(size, addr)\t\t((void)0)\n-\n-/*\n  * Available generic sets of operations\n  */\n extern const struct dma_map_ops dma_direct_ops;\n@@ -41,27 +25,9 @@ static inline const struct dma_map_ops *get_arch_dma_ops(struct bus_type *bus)\n \treturn &dma_direct_ops;\n }\n \n-static inline void __dma_sync(unsigned long paddr,\n-\t\t\t      size_t size, enum dma_data_direction direction)\n-{\n-\tswitch (direction) {\n-\tcase DMA_TO_DEVICE:\n-\tcase DMA_BIDIRECTIONAL:\n-\t\tflush_dcache_range(paddr, paddr + size);\n-\t\tbreak;\n-\tcase DMA_FROM_DEVICE:\n-\t\tinvalidate_dcache_range(paddr, paddr + size);\n-\t\tbreak;\n-\tdefault:\n-\t\tBUG();\n-\t}\n-}\n-\n static inline void dma_cache_sync(struct device *dev, void *vaddr, size_t size,\n \t\tenum dma_data_direction direction)\n {\n-\tBUG_ON(direction == DMA_NONE);\n-\t__dma_sync(virt_to_phys(vaddr), size, (int)direction);\n }\n \n #endif\t/* _ASM_MICROBLAZE_DMA_MAPPING_H */\ndiff --git a/arch/microblaze/kernel/dma.c b/arch/microblaze/kernel/dma.c\nindex e45ada8fb006..621902f8b0a0 100644\n--- a/arch/microblaze/kernel/dma.c\n+++ b/arch/microblaze/kernel/dma.c\n@@ -12,6 +12,7 @@\n #include <linux/dma-debug.h>\n #include <linux/export.h>\n #include <linux/bug.h>\n+#include <asm/cacheflush.h>\n \n #define NOT_COHERENT_CACHE\n \n@@ -51,6 +52,22 @@ static void dma_direct_free_coherent(struct device *dev, size_t size,\n #endif\n }\n \n+static inline void __dma_sync(unsigned long paddr,\n+\t\t\t      size_t size, enum dma_data_direction direction)\n+{\n+\tswitch (direction) {\n+\tcase DMA_TO_DEVICE:\n+\tcase DMA_BIDIRECTIONAL:\n+\t\tflush_dcache_range(paddr, paddr + size);\n+\t\tbreak;\n+\tcase DMA_FROM_DEVICE:\n+\t\tinvalidate_dcache_range(paddr, paddr + size);\n+\t\tbreak;\n+\tdefault:\n+\t\tBUG();\n+\t}\n+}\n+\n static int dma_direct_map_sg(struct device *dev, struct scatterlist *sgl,\n \t\t\t     int nents, enum dma_data_direction direction,\n \t\t\t     unsigned long attrs)\n","prefixes":["06/12"]}