diff for duplicates of <20180620072328.GA1675@lst.de> diff --git a/a/1.txt b/N1/1.txt index 1181bf2..8d10064 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -43,168 +43,3 @@ the other 0x7fffffff. Below is the minimal fixup that keeps things as much as it was before. --- -From 174213f535c07774cdbbccd42c76164893729cf5 Mon Sep 17 00:00:00 2001 -From: Christoph Hellwig <hch@lst.de> -Date: Wed, 20 Jun 2018 09:11:15 +0200 -Subject: MIPS: loongson64: use generic dma noncoherent ops -Content-Length: 4681 -Lines: 159 - -Provide phys_to_dma/dma_to_phys helpers, everything else is generic. - -Signed-off-by: Christoph Hellwig <hch@lst.de> ---- - arch/mips/Kconfig | 1 + - .../asm/mach-loongson64/dma-coherence.h | 69 ------------------- - arch/mips/loongson64/Kconfig | 2 - - arch/mips/loongson64/common/Makefile | 1 + - arch/mips/loongson64/common/dma.c | 18 +++++ - 5 files changed, 20 insertions(+), 71 deletions(-) - delete mode 100644 arch/mips/include/asm/mach-loongson64/dma-coherence.h - create mode 100644 arch/mips/loongson64/common/dma.c - -diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig -index 326bd73bc5bf..e192e484b1b8 100644 ---- a/arch/mips/Kconfig -+++ b/arch/mips/Kconfig -@@ -1827,6 +1827,7 @@ config CPU_LOONGSON2 - select CPU_SUPPORTS_64BIT_KERNEL - select CPU_SUPPORTS_HIGHMEM - select CPU_SUPPORTS_HUGEPAGES -+ select ARCH_HAS_PHYS_TO_DMA - - config CPU_LOONGSON1 - bool -diff --git a/arch/mips/include/asm/mach-loongson64/dma-coherence.h b/arch/mips/include/asm/mach-loongson64/dma-coherence.h -deleted file mode 100644 -index 651dd2eb3ee5..000000000000 ---- a/arch/mips/include/asm/mach-loongson64/dma-coherence.h -+++ /dev/null -@@ -1,69 +0,0 @@ --/* -- * This file is subject to the terms and conditions of the GNU General Public -- * License. See the file "COPYING" in the main directory of this archive -- * for more details. -- * -- * Copyright (C) 2006, 07 Ralf Baechle <ralf@linux-mips.org> -- * Copyright (C) 2007 Lemote, Inc. & Institute of Computing Technology -- * Author: Fuxin Zhang, zhangfx@lemote.com -- * -- */ --#ifndef __ASM_MACH_LOONGSON64_DMA_COHERENCE_H --#define __ASM_MACH_LOONGSON64_DMA_COHERENCE_H -- --#ifdef CONFIG_SWIOTLB --#include <linux/swiotlb.h> --#endif -- --struct device; -- --static inline dma_addr_t plat_map_dma_mem(struct device *dev, void *addr, -- size_t size) --{ -- return virt_to_phys(addr) | 0x80000000; --} -- --static inline dma_addr_t plat_map_dma_mem_page(struct device *dev, -- struct page *page) --{ -- return page_to_phys(page) | 0x80000000; --} -- --static inline unsigned long plat_dma_addr_to_phys(struct device *dev, -- dma_addr_t dma_addr) --{ --#if defined(CONFIG_CPU_LOONGSON2F) && defined(CONFIG_64BIT) -- return (dma_addr > 0x8fffffff) ? dma_addr : (dma_addr & 0x0fffffff); --#else -- return dma_addr & 0x7fffffff; --#endif --} -- --static inline void plat_unmap_dma_mem(struct device *dev, dma_addr_t dma_addr, -- size_t size, enum dma_data_direction direction) --{ --} -- --static inline int plat_dma_supported(struct device *dev, u64 mask) --{ -- /* -- * we fall back to GFP_DMA when the mask isn't all 1s, -- * so we can't guarantee allocations that must be -- * within a tighter range than GFP_DMA.. -- */ -- if (mask < DMA_BIT_MASK(24)) -- return 0; -- -- return 1; --} -- --static inline int plat_device_is_coherent(struct device *dev) --{ -- return 0; --} -- --static inline void plat_post_dma_flush(struct device *dev) --{ --} -- --#endif /* __ASM_MACH_LOONGSON64_DMA_COHERENCE_H */ -diff --git a/arch/mips/loongson64/Kconfig b/arch/mips/loongson64/Kconfig -index a785bf8da3f3..c865b4b9b775 100644 ---- a/arch/mips/loongson64/Kconfig -+++ b/arch/mips/loongson64/Kconfig -@@ -13,7 +13,6 @@ config LEMOTE_FULOONG2E - select CSRC_R4K - select SYS_HAS_CPU_LOONGSON2E - select DMA_NONCOHERENT -- select MIPS_DMA_DEFAULT - select BOOT_ELF32 - select BOARD_SCACHE - select HW_HAS_PCI -@@ -45,7 +44,6 @@ config LEMOTE_MACH2F - select CS5536 - select CSRC_R4K if ! MIPS_EXTERNAL_TIMER - select DMA_NONCOHERENT -- select MIPS_DMA_DEFAULT - select GENERIC_ISA_DMA_SUPPORT_BROKEN - select HAVE_CLK - select HW_HAS_PCI -diff --git a/arch/mips/loongson64/common/Makefile b/arch/mips/loongson64/common/Makefile -index 684624f61f5a..57ee03022941 100644 ---- a/arch/mips/loongson64/common/Makefile -+++ b/arch/mips/loongson64/common/Makefile -@@ -6,6 +6,7 @@ - obj-y += setup.o init.o cmdline.o env.o time.o reset.o irq.o \ - bonito-irq.o mem.o machtype.o platform.o serial.o - obj-$(CONFIG_PCI) += pci.o -+obj-$(CONFIG_CPU_LOONGSON2) += dma.o - - # - # Serial port support -diff --git a/arch/mips/loongson64/common/dma.c b/arch/mips/loongson64/common/dma.c -new file mode 100644 -index 000000000000..48f04126bde2 ---- /dev/null -+++ b/arch/mips/loongson64/common/dma.c -@@ -0,0 +1,18 @@ -+// SPDX-License-Identifier: GPL-2.0 -+#include <linux/dma-direct.h> -+ -+dma_addr_t __phys_to_dma(struct device *dev, phys_addr_t paddr) -+{ -+ return paddr | 0x80000000; -+} -+ -+phys_addr_t __dma_to_phys(struct device *dev, dma_addr_t dma_addr) -+{ -+#if defined(CONFIG_CPU_LOONGSON2F) && defined(CONFIG_64BIT) -+ if (dma_addr > 0x8fffffff) -+ return dma_addr; -+ return dma_addr & 0x0fffffff; -+#else -+ return dma_addr & 0x7fffffff; -+#endif -+} --- -2.17.1 diff --git a/a/content_digest b/N1/content_digest index 9169b3b..ecd3cf1 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -62,171 +62,6 @@ "\n" "Below is the minimal fixup that keeps things as much as it was before.\n" "\n" - "---\n" - "From 174213f535c07774cdbbccd42c76164893729cf5 Mon Sep 17 00:00:00 2001\n" - "From: Christoph Hellwig <hch@lst.de>\n" - "Date: Wed, 20 Jun 2018 09:11:15 +0200\n" - "Subject: MIPS: loongson64: use generic dma noncoherent ops\n" - "Content-Length: 4681\n" - "Lines: 159\n" - "\n" - "Provide phys_to_dma/dma_to_phys helpers, everything else is generic.\n" - "\n" - "Signed-off-by: Christoph Hellwig <hch@lst.de>\n" - "---\n" - " arch/mips/Kconfig | 1 +\n" - " .../asm/mach-loongson64/dma-coherence.h | 69 -------------------\n" - " arch/mips/loongson64/Kconfig | 2 -\n" - " arch/mips/loongson64/common/Makefile | 1 +\n" - " arch/mips/loongson64/common/dma.c | 18 +++++\n" - " 5 files changed, 20 insertions(+), 71 deletions(-)\n" - " delete mode 100644 arch/mips/include/asm/mach-loongson64/dma-coherence.h\n" - " create mode 100644 arch/mips/loongson64/common/dma.c\n" - "\n" - "diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig\n" - "index 326bd73bc5bf..e192e484b1b8 100644\n" - "--- a/arch/mips/Kconfig\n" - "+++ b/arch/mips/Kconfig\n" - "@@ -1827,6 +1827,7 @@ config CPU_LOONGSON2\n" - " \tselect CPU_SUPPORTS_64BIT_KERNEL\n" - " \tselect CPU_SUPPORTS_HIGHMEM\n" - " \tselect CPU_SUPPORTS_HUGEPAGES\n" - "+\tselect ARCH_HAS_PHYS_TO_DMA\n" - " \n" - " config CPU_LOONGSON1\n" - " \tbool\n" - "diff --git a/arch/mips/include/asm/mach-loongson64/dma-coherence.h b/arch/mips/include/asm/mach-loongson64/dma-coherence.h\n" - "deleted file mode 100644\n" - "index 651dd2eb3ee5..000000000000\n" - "--- a/arch/mips/include/asm/mach-loongson64/dma-coherence.h\n" - "+++ /dev/null\n" - "@@ -1,69 +0,0 @@\n" - "-/*\n" - "- * This file is subject to the terms and conditions of the GNU General Public\n" - "- * License. See the file \"COPYING\" in the main directory of this archive\n" - "- * for more details.\n" - "- *\n" - "- * Copyright (C) 2006, 07 Ralf Baechle <ralf@linux-mips.org>\n" - "- * Copyright (C) 2007 Lemote, Inc. & Institute of Computing Technology\n" - "- * Author: Fuxin Zhang, zhangfx@lemote.com\n" - "- *\n" - "- */\n" - "-#ifndef __ASM_MACH_LOONGSON64_DMA_COHERENCE_H\n" - "-#define __ASM_MACH_LOONGSON64_DMA_COHERENCE_H\n" - "-\n" - "-#ifdef CONFIG_SWIOTLB\n" - "-#include <linux/swiotlb.h>\n" - "-#endif\n" - "-\n" - "-struct device;\n" - "-\n" - "-static inline dma_addr_t plat_map_dma_mem(struct device *dev, void *addr,\n" - "-\t\t\t\t\t size_t size)\n" - "-{\n" - "-\treturn virt_to_phys(addr) | 0x80000000;\n" - "-}\n" - "-\n" - "-static inline dma_addr_t plat_map_dma_mem_page(struct device *dev,\n" - "-\t\t\t\t\t struct page *page)\n" - "-{\n" - "-\treturn page_to_phys(page) | 0x80000000;\n" - "-}\n" - "-\n" - "-static inline unsigned long plat_dma_addr_to_phys(struct device *dev,\n" - "-\tdma_addr_t dma_addr)\n" - "-{\n" - "-#if defined(CONFIG_CPU_LOONGSON2F) && defined(CONFIG_64BIT)\n" - "-\treturn (dma_addr > 0x8fffffff) ? dma_addr : (dma_addr & 0x0fffffff);\n" - "-#else\n" - "-\treturn dma_addr & 0x7fffffff;\n" - "-#endif\n" - "-}\n" - "-\n" - "-static inline void plat_unmap_dma_mem(struct device *dev, dma_addr_t dma_addr,\n" - "-\tsize_t size, enum dma_data_direction direction)\n" - "-{\n" - "-}\n" - "-\n" - "-static inline int plat_dma_supported(struct device *dev, u64 mask)\n" - "-{\n" - "-\t/*\n" - "-\t * we fall back to GFP_DMA when the mask isn't all 1s,\n" - "-\t * so we can't guarantee allocations that must be\n" - "-\t * within a tighter range than GFP_DMA..\n" - "-\t */\n" - "-\tif (mask < DMA_BIT_MASK(24))\n" - "-\t\treturn 0;\n" - "-\n" - "-\treturn 1;\n" - "-}\n" - "-\n" - "-static inline int plat_device_is_coherent(struct device *dev)\n" - "-{\n" - "-\treturn 0;\n" - "-}\n" - "-\n" - "-static inline void plat_post_dma_flush(struct device *dev)\n" - "-{\n" - "-}\n" - "-\n" - "-#endif /* __ASM_MACH_LOONGSON64_DMA_COHERENCE_H */\n" - "diff --git a/arch/mips/loongson64/Kconfig b/arch/mips/loongson64/Kconfig\n" - "index a785bf8da3f3..c865b4b9b775 100644\n" - "--- a/arch/mips/loongson64/Kconfig\n" - "+++ b/arch/mips/loongson64/Kconfig\n" - "@@ -13,7 +13,6 @@ config LEMOTE_FULOONG2E\n" - " \tselect CSRC_R4K\n" - " \tselect SYS_HAS_CPU_LOONGSON2E\n" - " \tselect DMA_NONCOHERENT\n" - "-\tselect MIPS_DMA_DEFAULT\n" - " \tselect BOOT_ELF32\n" - " \tselect BOARD_SCACHE\n" - " \tselect HW_HAS_PCI\n" - "@@ -45,7 +44,6 @@ config LEMOTE_MACH2F\n" - " \tselect CS5536\n" - " \tselect CSRC_R4K if ! MIPS_EXTERNAL_TIMER\n" - " \tselect DMA_NONCOHERENT\n" - "-\tselect MIPS_DMA_DEFAULT\n" - " \tselect GENERIC_ISA_DMA_SUPPORT_BROKEN\n" - " \tselect HAVE_CLK\n" - " \tselect HW_HAS_PCI\n" - "diff --git a/arch/mips/loongson64/common/Makefile b/arch/mips/loongson64/common/Makefile\n" - "index 684624f61f5a..57ee03022941 100644\n" - "--- a/arch/mips/loongson64/common/Makefile\n" - "+++ b/arch/mips/loongson64/common/Makefile\n" - "@@ -6,6 +6,7 @@\n" - " obj-y += setup.o init.o cmdline.o env.o time.o reset.o irq.o \\\n" - " bonito-irq.o mem.o machtype.o platform.o serial.o\n" - " obj-$(CONFIG_PCI) += pci.o\n" - "+obj-$(CONFIG_CPU_LOONGSON2) += dma.o\n" - " \n" - " #\n" - " # Serial port support\n" - "diff --git a/arch/mips/loongson64/common/dma.c b/arch/mips/loongson64/common/dma.c\n" - "new file mode 100644\n" - "index 000000000000..48f04126bde2\n" - "--- /dev/null\n" - "+++ b/arch/mips/loongson64/common/dma.c\n" - "@@ -0,0 +1,18 @@\n" - "+// SPDX-License-Identifier: GPL-2.0\n" - "+#include <linux/dma-direct.h>\n" - "+\n" - "+dma_addr_t __phys_to_dma(struct device *dev, phys_addr_t paddr)\n" - "+{\n" - "+\treturn paddr | 0x80000000;\n" - "+}\n" - "+\n" - "+phys_addr_t __dma_to_phys(struct device *dev, dma_addr_t dma_addr)\n" - "+{\n" - "+#if defined(CONFIG_CPU_LOONGSON2F) && defined(CONFIG_64BIT)\n" - "+\tif (dma_addr > 0x8fffffff)\n" - "+\t\treturn dma_addr;\n" - "+\treturn dma_addr & 0x0fffffff;\n" - "+#else\n" - "+\treturn dma_addr & 0x7fffffff;\n" - "+#endif\n" - "+}\n" - "-- \n" - 2.17.1 + --- -afeb3d8949389e613e2f16d38520df404ca0e8fce9816cb1299b66eb58e5b664 +381b2fc69d78c4143958e0dcfad568baf3c646acf0121d319e977ecbceabaf2c
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox