]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
arm: remove arch specific dma_supported implementation
authorChristoph Hellwig <hch@lst.de>
Mon, 22 May 2017 09:20:18 +0000 (11:20 +0200)
committerChristoph Hellwig <hch@lst.de>
Wed, 28 Jun 2017 13:54:45 +0000 (06:54 -0700)
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
arch/arm/include/asm/dma-iommu.h
arch/arm/include/asm/dma-mapping.h
arch/arm/mm/dma-mapping.c

index 4060378e0f141111738ecdb301f03829e11a4fd9..6ecd5be5d37e260c8256c7b11cf2c6df75500312 100644 (file)
@@ -473,6 +473,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,
index 389a26a10ea3d94d8f6a7039ac49201757ebf3b1..c090ec675eac22d2e5a3e1cf32e33be389c278fa 100644 (file)
@@ -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
index 52a8fd5a8edbf7c6c143bc129044967a8fe3d056..8dabcfdf45059d3ebce80303ea4a65a3b47e008e 100644 (file)
@@ -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
index 8f2c5a8a98f0e74fc81df6af590938b4a158ca83..b9677ada421f28c9be3252e6f8d32c1adf91fa1f 100644 (file)
@@ -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,
 };
 
 /**