From: Christoph Hellwig <hch@lst.de> Cc: linux-arch@vger.kernel.org, linux-xtensa@linux-xtensa.org, Michal Simek <monstr@monstr.eu>, Vincent Chen <deanbo422@gmail.com>, linux-c6x-dev@linux-c6x.org, linux-parisc@vger.kernel.org, linux-sh@vger.kernel.org, linux-hexagon@vger.kernel.org, linux-kernel@vger.kernel.org, linux-m68k@lists.linux-m68k.org, openrisc@lists.librecores.org, Greentime Hu <green.hu@gmail.com>, linux-alpha@vger.kernel.org, sparclinux@vger.kernel.org, nios2-dev@lists.rocketboards.org, linux-snps-arc@lists.infradead.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH 04/22] alpha: use dma_direct_ops for jensen Date: Fri, 20 Apr 2018 10:02:55 +0200 [thread overview] Message-ID: <20180420080313.18796-5-hch@lst.de> (raw) In-Reply-To: <20180420080313.18796-1-hch@lst.de> The generic dma_direct implementation does the same thing as the alpha pci-noop implementation, just with more bells and whistles. And unlike the current code it at least has a theoretical chance to actually compile. Signed-off-by: Christoph Hellwig <hch@lst.de> --- arch/alpha/Kconfig | 1 + arch/alpha/include/asm/dma-mapping.h | 4 ++++ arch/alpha/kernel/pci-noop.c | 33 ---------------------------- 3 files changed, 5 insertions(+), 33 deletions(-) diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig index aa7df1a36fd0..94af0c7f494a 100644 --- a/arch/alpha/Kconfig +++ b/arch/alpha/Kconfig @@ -204,6 +204,7 @@ config ALPHA_EIGER config ALPHA_JENSEN bool "Jensen" depends on BROKEN + select DMA_DIRECT_OPS help DEC PC 150 AXP (aka Jensen): This is a very old Digital system - one of the first-generation Alpha systems. A number of these systems diff --git a/arch/alpha/include/asm/dma-mapping.h b/arch/alpha/include/asm/dma-mapping.h index b78f61f20796..76ce923ecca1 100644 --- a/arch/alpha/include/asm/dma-mapping.h +++ b/arch/alpha/include/asm/dma-mapping.h @@ -6,7 +6,11 @@ extern const struct dma_map_ops *dma_ops; static inline const struct dma_map_ops *get_arch_dma_ops(struct bus_type *bus) { +#ifdef CONFIG_ALPHA_JENSEN + return &dma_direct_ops; +#else return dma_ops; +#endif } #endif /* _ALPHA_DMA_MAPPING_H */ diff --git a/arch/alpha/kernel/pci-noop.c b/arch/alpha/kernel/pci-noop.c index b6ebb65127a8..c7c5879869d3 100644 --- a/arch/alpha/kernel/pci-noop.c +++ b/arch/alpha/kernel/pci-noop.c @@ -102,36 +102,3 @@ SYSCALL_DEFINE5(pciconfig_write, unsigned long, bus, unsigned long, dfn, else return -ENODEV; } - -static void *alpha_noop_alloc_coherent(struct device *dev, size_t size, - dma_addr_t *dma_handle, gfp_t gfp, - unsigned long attrs) -{ - void *ret; - - if (!dev || *dev->dma_mask >= 0xffffffffUL) - gfp &= ~GFP_DMA; - ret = (void *)__get_free_pages(gfp, get_order(size)); - if (ret) { - memset(ret, 0, size); - *dma_handle = virt_to_phys(ret); - } - return ret; -} - -static int alpha_noop_supported(struct device *dev, u64 mask) -{ - return mask < 0x00ffffffUL ? 0 : 1; -} - -const struct dma_map_ops alpha_noop_ops = { - .alloc = alpha_noop_alloc_coherent, - .free = dma_noop_free_coherent, - .map_page = dma_noop_map_page, - .map_sg = dma_noop_map_sg, - .mapping_error = dma_noop_mapping_error, - .dma_supported = alpha_noop_supported, -}; - -const struct dma_map_ops *dma_ops = &alpha_noop_ops; -EXPORT_SYMBOL(dma_ops); -- 2.17.0
WARNING: multiple messages have this Message-ID (diff)
From: Christoph Hellwig <hch@lst.de> Cc: linux-arch@vger.kernel.org, Michal Simek <monstr@monstr.eu>, Greentime Hu <green.hu@gmail.com>, Vincent Chen <deanbo422@gmail.com>, linux-alpha@vger.kernel.org, linux-snps-arc@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-c6x-dev@linux-c6x.org, linux-hexagon@vger.kernel.org, linux-m68k@lists.linux-m68k.org, nios2-dev@lists.rocketboards.org, openrisc@lists.librecores.org, linux-parisc@vger.kernel.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, linux-xtensa@linux-xtensa.org, linux-kernel@vger.kernel.org Subject: [PATCH 04/22] alpha: use dma_direct_ops for jensen Date: Fri, 20 Apr 2018 10:02:55 +0200 [thread overview] Message-ID: <20180420080313.18796-5-hch@lst.de> (raw) Message-ID: <20180420080255.MVHPcqYMmLKjP6FOG-C5dlTJd7Cwi5vLrGIYkrvryW4@z> (raw) In-Reply-To: <20180420080313.18796-1-hch@lst.de> The generic dma_direct implementation does the same thing as the alpha pci-noop implementation, just with more bells and whistles. And unlike the current code it at least has a theoretical chance to actually compile. Signed-off-by: Christoph Hellwig <hch@lst.de> --- arch/alpha/Kconfig | 1 + arch/alpha/include/asm/dma-mapping.h | 4 ++++ arch/alpha/kernel/pci-noop.c | 33 ---------------------------- 3 files changed, 5 insertions(+), 33 deletions(-) diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig index aa7df1a36fd0..94af0c7f494a 100644 --- a/arch/alpha/Kconfig +++ b/arch/alpha/Kconfig @@ -204,6 +204,7 @@ config ALPHA_EIGER config ALPHA_JENSEN bool "Jensen" depends on BROKEN + select DMA_DIRECT_OPS help DEC PC 150 AXP (aka Jensen): This is a very old Digital system - one of the first-generation Alpha systems. A number of these systems diff --git a/arch/alpha/include/asm/dma-mapping.h b/arch/alpha/include/asm/dma-mapping.h index b78f61f20796..76ce923ecca1 100644 --- a/arch/alpha/include/asm/dma-mapping.h +++ b/arch/alpha/include/asm/dma-mapping.h @@ -6,7 +6,11 @@ extern const struct dma_map_ops *dma_ops; static inline const struct dma_map_ops *get_arch_dma_ops(struct bus_type *bus) { +#ifdef CONFIG_ALPHA_JENSEN + return &dma_direct_ops; +#else return dma_ops; +#endif } #endif /* _ALPHA_DMA_MAPPING_H */ diff --git a/arch/alpha/kernel/pci-noop.c b/arch/alpha/kernel/pci-noop.c index b6ebb65127a8..c7c5879869d3 100644 --- a/arch/alpha/kernel/pci-noop.c +++ b/arch/alpha/kernel/pci-noop.c @@ -102,36 +102,3 @@ SYSCALL_DEFINE5(pciconfig_write, unsigned long, bus, unsigned long, dfn, else return -ENODEV; } - -static void *alpha_noop_alloc_coherent(struct device *dev, size_t size, - dma_addr_t *dma_handle, gfp_t gfp, - unsigned long attrs) -{ - void *ret; - - if (!dev || *dev->dma_mask >= 0xffffffffUL) - gfp &= ~GFP_DMA; - ret = (void *)__get_free_pages(gfp, get_order(size)); - if (ret) { - memset(ret, 0, size); - *dma_handle = virt_to_phys(ret); - } - return ret; -} - -static int alpha_noop_supported(struct device *dev, u64 mask) -{ - return mask < 0x00ffffffUL ? 0 : 1; -} - -const struct dma_map_ops alpha_noop_ops = { - .alloc = alpha_noop_alloc_coherent, - .free = dma_noop_free_coherent, - .map_page = dma_noop_map_page, - .map_sg = dma_noop_map_sg, - .mapping_error = dma_noop_mapping_error, - .dma_supported = alpha_noop_supported, -}; - -const struct dma_map_ops *dma_ops = &alpha_noop_ops; -EXPORT_SYMBOL(dma_ops); -- 2.17.0
next prev parent reply other threads:[~2018-04-20 8:02 UTC|newest] Thread overview: 88+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-04-20 8:02 (unknown), Christoph Hellwig 2018-04-20 8:02 ` Christoph Hellwig 2018-04-20 8:02 ` [PATCH 01/22] dma-debug: move initialization to common code Christoph Hellwig 2018-04-20 8:02 ` Christoph Hellwig 2018-04-20 10:23 ` Robin Murphy 2018-04-20 10:23 ` Robin Murphy 2018-04-24 7:35 ` Christoph Hellwig 2018-04-24 7:35 ` Christoph Hellwig 2018-04-20 8:02 ` [PATCH 02/22] dma-mapping: simplify Kconfig dependencies Christoph Hellwig 2018-04-20 8:02 ` Christoph Hellwig 2018-04-20 8:02 ` [PATCH 03/22] dma-mapping: provide a generic dma-noncoherent implementation Christoph Hellwig 2018-04-20 8:02 ` Christoph Hellwig 2018-04-20 8:02 ` Christoph Hellwig [this message] 2018-04-20 8:02 ` [PATCH 04/22] alpha: use dma_direct_ops for jensen Christoph Hellwig 2018-04-20 8:02 ` [PATCH 05/22] alpha: simplify get_arch_dma_ops Christoph Hellwig 2018-04-20 8:02 ` Christoph Hellwig 2018-04-20 8:02 ` [PATCH 06/22] arc: use generic dma_noncoherent_ops Christoph Hellwig 2018-04-20 8:02 ` Christoph Hellwig 2018-04-25 11:17 ` Alexey Brodkin 2018-04-25 11:17 ` Alexey Brodkin 2018-04-26 6:45 ` hch 2018-04-26 6:45 ` hch 2018-04-26 8:25 ` hch 2018-04-26 8:25 ` hch 2018-04-20 8:02 ` [PATCH 07/22] arm-nommu: " Christoph Hellwig 2018-04-20 8:02 ` Christoph Hellwig 2018-04-20 8:02 ` [PATCH 08/22] c6x: " Christoph Hellwig 2018-04-20 8:02 ` Christoph Hellwig 2018-04-20 8:03 ` [PATCH 09/22] hexagon: " Christoph Hellwig 2018-04-20 8:03 ` Christoph Hellwig 2018-04-20 8:03 ` [PATCH 10/22] m68k: " Christoph Hellwig 2018-04-20 8:03 ` Christoph Hellwig 2018-04-20 8:03 ` [PATCH 11/22] microblaze: " Christoph Hellwig 2018-04-20 8:03 ` Christoph Hellwig 2018-04-20 8:03 ` [PATCH 12/22] microblaze: remove the consistent_sync and consistent_sync_page Christoph Hellwig 2018-04-20 8:03 ` Christoph Hellwig 2018-04-20 8:03 ` [PATCH 13/22] nds32: use generic dma_noncoherent_ops Christoph Hellwig 2018-04-20 8:03 ` Christoph Hellwig 2018-04-23 6:49 ` Greentime Hu 2018-04-23 6:49 ` Greentime Hu 2018-04-23 8:09 ` Michael Schmitz 2018-04-23 11:03 ` Greentime Hu 2018-04-24 19:16 ` Christoph Hellwig 2018-04-24 19:16 ` Christoph Hellwig 2018-04-25 1:43 ` Greentime Hu 2018-04-25 1:43 ` Greentime Hu 2018-04-25 6:40 ` Christoph Hellwig 2018-04-25 6:40 ` Christoph Hellwig 2018-04-25 12:25 ` Greentime Hu 2018-04-25 12:25 ` Greentime Hu 2018-04-26 6:42 ` Christoph Hellwig 2018-04-26 6:42 ` Christoph Hellwig 2018-04-26 8:06 ` Greentime Hu 2018-04-26 8:06 ` Greentime Hu 2018-04-26 8:24 ` Christoph Hellwig 2018-04-26 8:24 ` Christoph Hellwig 2018-04-26 9:39 ` Greentime Hu 2018-04-26 9:39 ` Greentime Hu 2018-04-20 8:03 ` [PATCH 14/22] nios2: " Christoph Hellwig 2018-04-20 8:03 ` Christoph Hellwig 2018-04-20 8:03 ` [PATCH 15/22] openrisc: " Christoph Hellwig 2018-04-20 8:03 ` Christoph Hellwig 2018-04-20 8:03 ` [PATCH 16/22] sh: simplify get_arch_dma_ops Christoph Hellwig 2018-04-20 8:03 ` Christoph Hellwig 2018-04-20 8:03 ` [PATCH 17/22] sh: introduce a sh_cacheop_vaddr helper Christoph Hellwig 2018-04-20 8:03 ` Christoph Hellwig 2018-04-20 8:03 ` [PATCH 18/22] sh: use dma_direct_ops for the CONFIG_DMA_COHERENT case Christoph Hellwig 2018-04-20 8:03 ` Christoph Hellwig 2018-04-20 8:03 ` [PATCH 19/22] sh: use generic dma_noncoherent_ops Christoph Hellwig 2018-04-20 8:03 ` Christoph Hellwig 2018-04-20 8:03 ` [PATCH 20/22] xtensa: " Christoph Hellwig 2018-04-20 8:03 ` Christoph Hellwig 2018-04-20 8:03 ` [PATCH 21/22] sparc: " Christoph Hellwig 2018-04-20 8:03 ` Christoph Hellwig 2018-04-20 8:03 ` [PATCH 22/22] parisc: " Christoph Hellwig 2018-04-20 8:03 ` Christoph Hellwig 2018-04-21 17:43 ` Helge Deller 2018-04-21 17:43 ` Helge Deller 2018-04-21 21:52 ` James Bottomley 2018-04-21 21:52 ` James Bottomley 2018-04-25 7:21 ` Christoph Hellwig 2018-04-25 7:21 ` Christoph Hellwig 2018-04-25 21:07 ` Helge Deller 2018-04-25 21:07 ` Helge Deller 2018-04-21 21:42 ` James Bottomley 2018-04-21 21:42 ` James Bottomley 2018-04-24 8:20 ` Christoph Hellwig 2018-04-24 8:20 ` Christoph Hellwig
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20180420080313.18796-5-hch@lst.de \ --to=hch@lst.de \ --cc=deanbo422@gmail.com \ --cc=green.hu@gmail.com \ --cc=linux-alpha@vger.kernel.org \ --cc=linux-arch@vger.kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-c6x-dev@linux-c6x.org \ --cc=linux-hexagon@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-m68k@lists.linux-m68k.org \ --cc=linux-parisc@vger.kernel.org \ --cc=linux-sh@vger.kernel.org \ --cc=linux-snps-arc@lists.infradead.org \ --cc=linux-xtensa@linux-xtensa.org \ --cc=monstr@monstr.eu \ --cc=nios2-dev@lists.rocketboards.org \ --cc=openrisc@lists.librecores.org \ --cc=sparclinux@vger.kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).