From: Christoph Hellwig <hch@lst.de>
To: x86@kernel.org, linux-arm-kernel@lists.infradead.org,
xen-devel@lists.xenproject.org, linux-c6x-dev@linux-c6x.org,
linux-hexagon@vger.kernel.org, linux-ia64@vger.kernel.org,
linux-mips@linux-mips.org, openrisc@lists.librecores.org,
linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org,
linux-sh@vger.kernel.org, sparclinux@vger.kernel.org,
linux-xtensa@linux-xtensa.org, dmaengine@vger.kernel.org,
linux-tegra@vger.kernel.org, dri-devel@lists.freedesktop.org,
linux-samsung-soc@vger.kernel.org,
iommu@lists.linux-foundation.org, netdev@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Subject: [PATCH 34/44] arm: remove arch specific dma_supported implementation
Date: Thu, 8 Jun 2017 15:25:59 +0200 [thread overview]
Message-ID: <20170608132609.32662-35-hch@lst.de> (raw)
In-Reply-To: <20170608132609.32662-1-hch@lst.de>
And instead wire it up as method for all the dma_map_ops instances.
Note that the code seems a little fishy for dmabounce and iommu, but
for now I'd like to preserve the existing behavior 1:1.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
arch/arm/common/dmabounce.c | 1 +
arch/arm/include/asm/dma-iommu.h | 2 ++
arch/arm/include/asm/dma-mapping.h | 3 ---
arch/arm/mm/dma-mapping.c | 7 +++++--
4 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/arch/arm/common/dmabounce.c b/arch/arm/common/dmabounce.c
index bad457395ff1..4aabf117e136 100644
--- a/arch/arm/common/dmabounce.c
+++ b/arch/arm/common/dmabounce.c
@@ -476,6 +476,7 @@ static const struct dma_map_ops dmabounce_ops = {
.sync_sg_for_device = arm_dma_sync_sg_for_device,
.set_dma_mask = dmabounce_set_mask,
.mapping_error = dmabounce_mapping_error,
+ .dma_supported = arm_dma_supported,
};
static int dmabounce_init_pool(struct dmabounce_pool *pool, struct device *dev,
diff --git a/arch/arm/include/asm/dma-iommu.h b/arch/arm/include/asm/dma-iommu.h
index 389a26a10ea3..c090ec675eac 100644
--- a/arch/arm/include/asm/dma-iommu.h
+++ b/arch/arm/include/asm/dma-iommu.h
@@ -35,5 +35,7 @@ int arm_iommu_attach_device(struct device *dev,
struct dma_iommu_mapping *mapping);
void arm_iommu_detach_device(struct device *dev);
+int arm_dma_supported(struct device *dev, u64 mask);
+
#endif /* __KERNEL__ */
#endif
diff --git a/arch/arm/include/asm/dma-mapping.h b/arch/arm/include/asm/dma-mapping.h
index 52a8fd5a8edb..8dabcfdf4505 100644
--- a/arch/arm/include/asm/dma-mapping.h
+++ b/arch/arm/include/asm/dma-mapping.h
@@ -20,9 +20,6 @@ static inline const struct dma_map_ops *get_arch_dma_ops(struct bus_type *bus)
return &arm_dma_ops;
}
-#define HAVE_ARCH_DMA_SUPPORTED 1
-extern int dma_supported(struct device *dev, u64 mask);
-
#ifdef __arch_page_to_dma
#error Please update to __arch_pfn_to_dma
#endif
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c
index 2dbc94b5fe5c..2938b724826e 100644
--- a/arch/arm/mm/dma-mapping.c
+++ b/arch/arm/mm/dma-mapping.c
@@ -199,6 +199,7 @@ const struct dma_map_ops arm_dma_ops = {
.sync_sg_for_cpu = arm_dma_sync_sg_for_cpu,
.sync_sg_for_device = arm_dma_sync_sg_for_device,
.mapping_error = arm_dma_mapping_error,
+ .dma_supported = arm_dma_supported,
};
EXPORT_SYMBOL(arm_dma_ops);
@@ -218,6 +219,7 @@ const struct dma_map_ops arm_coherent_dma_ops = {
.map_page = arm_coherent_dma_map_page,
.map_sg = arm_dma_map_sg,
.mapping_error = arm_dma_mapping_error,
+ .dma_supported = arm_dma_supported,
};
EXPORT_SYMBOL(arm_coherent_dma_ops);
@@ -1184,11 +1186,10 @@ void arm_dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg,
* during bus mastering, then you would pass 0x00ffffff as the mask
* to this function.
*/
-int dma_supported(struct device *dev, u64 mask)
+int arm_dma_supported(struct device *dev, u64 mask)
{
return __dma_supported(dev, mask, false);
}
-EXPORT_SYMBOL(dma_supported);
#define PREALLOC_DMA_DEBUG_ENTRIES 4096
@@ -2149,6 +2150,7 @@ const struct dma_map_ops iommu_ops = {
.unmap_resource = arm_iommu_unmap_resource,
.mapping_error = arm_dma_mapping_error,
+ .dma_supported = arm_dma_supported,
};
const struct dma_map_ops iommu_coherent_ops = {
@@ -2167,6 +2169,7 @@ const struct dma_map_ops iommu_coherent_ops = {
.unmap_resource = arm_iommu_unmap_resource,
.mapping_error = arm_dma_mapping_error,
+ .dma_supported = arm_dma_supported,
};
/**
--
2.11.0
next prev parent reply other threads:[~2017-06-08 13:33 UTC|newest]
Thread overview: 73+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-08 13:25 clean up and modularize arch dma_mapping interface Christoph Hellwig
2017-06-08 13:25 ` [PATCH 01/44] firmware/ivc: use dma_mapping_error Christoph Hellwig
2017-06-13 12:35 ` Thierry Reding
2017-06-08 13:25 ` [PATCH 02/44] ibmveth: properly unwind on init errors Christoph Hellwig
2017-06-08 14:21 ` David Miller
2017-06-08 13:25 ` [PATCH 03/44] dmaengine: ioat: don't use DMA_ERROR_CODE Christoph Hellwig
2017-06-08 16:32 ` Dave Jiang
2017-06-14 8:31 ` Vinod Koul
2017-06-08 13:25 ` [PATCH 04/44] drm/exynos: " Christoph Hellwig
2017-06-08 13:25 ` [PATCH 05/44] drm/armada: don't abuse DMA_ERROR_CODE Christoph Hellwig
2017-06-08 13:25 ` [PATCH 06/44] iommu/dma: don't rely on DMA_ERROR_CODE Christoph Hellwig
2017-06-08 13:59 ` Robin Murphy
2017-06-16 8:37 ` Christoph Hellwig
2017-06-08 13:25 ` [PATCH 07/44] xen-swiotlb: consolidate xen_swiotlb_dma_ops Christoph Hellwig
2017-06-11 2:36 ` Konrad Rzeszutek Wilk
2017-06-08 13:25 ` [PATCH 08/44] xen-swiotlb: implement ->mapping_error Christoph Hellwig
2017-06-11 2:37 ` Konrad Rzeszutek Wilk
2017-06-08 13:25 ` [PATCH 09/44] c6x: remove DMA_ERROR_CODE Christoph Hellwig
2017-06-08 13:25 ` [PATCH 10/44] ia64: " Christoph Hellwig
2017-06-08 13:25 ` [PATCH 11/44] m32r: " Christoph Hellwig
2017-06-08 13:25 ` [PATCH 12/44] microblaze: " Christoph Hellwig
2017-06-08 13:25 ` [PATCH 13/44] openrisc: " Christoph Hellwig
2017-06-08 13:25 ` [PATCH 14/44] sh: " Christoph Hellwig
2017-06-08 13:25 ` [PATCH 15/44] xtensa: " Christoph Hellwig
2017-06-08 13:25 ` [PATCH 16/44] arm64: " Christoph Hellwig
2017-06-08 14:02 ` Robin Murphy
2017-06-08 13:25 ` [PATCH 17/44] hexagon: switch to use ->mapping_error for error reporting Christoph Hellwig
2017-06-16 0:19 ` Richard Kuo
2017-06-08 13:25 ` [PATCH 18/44] iommu/amd: implement ->mapping_error Christoph Hellwig
2017-06-08 13:25 ` [PATCH 19/44] s390: " Christoph Hellwig
2017-06-08 16:23 ` Gerald Schaefer
2017-06-08 13:25 ` [PATCH 20/44] sparc: " Christoph Hellwig
2017-06-08 14:24 ` David Miller
2017-06-08 13:25 ` [PATCH 21/44] powerpc: " Christoph Hellwig
2017-06-14 9:17 ` Michael Ellerman
2017-06-08 13:25 ` [PATCH 22/44] x86/pci-nommu: " Christoph Hellwig
2017-06-08 13:25 ` [PATCH 23/44] x86/calgary: " Christoph Hellwig
2017-06-08 13:25 ` [PATCH 24/44] x86: remove DMA_ERROR_CODE Christoph Hellwig
2017-06-08 13:25 ` [PATCH 25/44] arm: implement ->mapping_error Christoph Hellwig
2017-06-08 14:43 ` Russell King - ARM Linux
2017-06-16 8:43 ` Christoph Hellwig
2017-06-08 13:25 ` [PATCH 26/44] dma-mapping: remove DMA_ERROR_CODE Christoph Hellwig
2017-06-08 13:25 ` [PATCH 27/44] sparc: remove leon_dma_ops Christoph Hellwig
2017-06-08 14:22 ` David Miller
2017-06-12 8:06 ` Andreas Larsson
2017-06-16 8:45 ` Christoph Hellwig
2017-06-08 13:25 ` [PATCH 28/44] sparc: remove arch specific dma_supported implementations Christoph Hellwig
2017-06-08 14:22 ` Julian Calaby
2017-06-16 8:47 ` Christoph Hellwig
2017-06-08 14:24 ` David Miller
2017-06-08 13:25 ` [PATCH 29/44] dma-noop: remove dma_supported and mapping_error methods Christoph Hellwig
2017-06-08 13:25 ` [PATCH 30/44] dma-virt: " Christoph Hellwig
2017-06-08 13:25 ` [PATCH 31/44] hexagon: remove arch-specific dma_supported implementation Christoph Hellwig
2017-06-16 0:20 ` Richard Kuo
2017-06-08 13:25 ` [PATCH 32/44] hexagon: remove the unused dma_is_consistent prototype Christoph Hellwig
2017-06-08 13:25 ` [PATCH 33/44] openrisc: remove arch-specific dma_supported implementation Christoph Hellwig
2017-06-09 12:20 ` Geert Uytterhoeven
2017-06-16 8:39 ` Christoph Hellwig
2017-06-08 13:25 ` Christoph Hellwig [this message]
2017-06-08 13:26 ` [PATCH 35/44] x86: remove arch specific " Christoph Hellwig
2017-06-08 13:26 ` [PATCH 36/44] dma-mapping: remove HAVE_ARCH_DMA_SUPPORTED Christoph Hellwig
2017-06-08 13:26 ` [PATCH 37/44] mips/loongson64: implement ->dma_supported instead of ->set_dma_mask Christoph Hellwig
2017-06-08 13:26 ` [PATCH 38/44] arm: " Christoph Hellwig
2017-06-08 13:26 ` [PATCH 39/44] xen-swiotlb: remove xen_swiotlb_set_dma_mask Christoph Hellwig
2017-06-08 13:26 ` [PATCH 40/44] tile: remove dma_supported and mapping_error methods Christoph Hellwig
2017-06-08 13:26 ` [PATCH 41/44] powerpc/cell: clean up fixed mapping dma_ops initialization Christoph Hellwig
2017-06-08 13:26 ` [PATCH 42/44] powerpc/cell: use the dma_supported method for ops switching Christoph Hellwig
2017-06-08 13:26 ` [PATCH 43/44] dma-mapping: remove the set_dma_mask method Christoph Hellwig
2017-06-08 13:26 ` [PATCH 44/44] powerpc: merge __dma_set_mask into dma_set_mask Christoph Hellwig
2017-06-08 14:21 ` clean up and modularize arch dma_mapping interface David Miller
2017-06-20 9:19 ` Daniel Vetter
2017-06-20 13:17 ` Christoph Hellwig
2017-06-16 18:10 clean up and modularize arch dma_mapping interface V2 Christoph Hellwig
2017-06-16 18:10 ` [PATCH 34/44] arm: remove arch specific dma_supported implementation 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=20170608132609.32662-35-hch@lst.de \
--to=hch@lst.de \
--cc=dmaengine@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=iommu@lists.linux-foundation.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-c6x-dev@linux-c6x.org \
--cc=linux-hexagon@vger.kernel.org \
--cc=linux-ia64@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@linux-mips.org \
--cc=linux-s390@vger.kernel.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=linux-sh@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=linux-xtensa@linux-xtensa.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=netdev@vger.kernel.org \
--cc=openrisc@lists.librecores.org \
--cc=sparclinux@vger.kernel.org \
--cc=x86@kernel.org \
--cc=xen-devel@lists.xenproject.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: link
Be 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).