]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - arch/arm64/mm/dma-mapping.c
arm64: Remove unused macros from assembler.h
[mirror_ubuntu-artful-kernel.git] / arch / arm64 / mm / dma-mapping.c
index b0bd4e5fd5cf9c2599ddbc509bccb233838638a4..d16a1cead23f1c3b489d320bcb0ac7d1d461621d 100644 (file)
@@ -414,6 +414,98 @@ out:
        return -ENOMEM;
 }
 
+/********************************************
+ * The following APIs are for dummy DMA ops *
+ ********************************************/
+
+static void *__dummy_alloc(struct device *dev, size_t size,
+                          dma_addr_t *dma_handle, gfp_t flags,
+                          struct dma_attrs *attrs)
+{
+       return NULL;
+}
+
+static void __dummy_free(struct device *dev, size_t size,
+                        void *vaddr, dma_addr_t dma_handle,
+                        struct dma_attrs *attrs)
+{
+}
+
+static int __dummy_mmap(struct device *dev,
+                       struct vm_area_struct *vma,
+                       void *cpu_addr, dma_addr_t dma_addr, size_t size,
+                       struct dma_attrs *attrs)
+{
+       return -ENXIO;
+}
+
+static dma_addr_t __dummy_map_page(struct device *dev, struct page *page,
+                                  unsigned long offset, size_t size,
+                                  enum dma_data_direction dir,
+                                  struct dma_attrs *attrs)
+{
+       return DMA_ERROR_CODE;
+}
+
+static void __dummy_unmap_page(struct device *dev, dma_addr_t dev_addr,
+                              size_t size, enum dma_data_direction dir,
+                              struct dma_attrs *attrs)
+{
+}
+
+static int __dummy_map_sg(struct device *dev, struct scatterlist *sgl,
+                         int nelems, enum dma_data_direction dir,
+                         struct dma_attrs *attrs)
+{
+       return 0;
+}
+
+static void __dummy_unmap_sg(struct device *dev,
+                            struct scatterlist *sgl, int nelems,
+                            enum dma_data_direction dir,
+                            struct dma_attrs *attrs)
+{
+}
+
+static void __dummy_sync_single(struct device *dev,
+                               dma_addr_t dev_addr, size_t size,
+                               enum dma_data_direction dir)
+{
+}
+
+static void __dummy_sync_sg(struct device *dev,
+                           struct scatterlist *sgl, int nelems,
+                           enum dma_data_direction dir)
+{
+}
+
+static int __dummy_mapping_error(struct device *hwdev, dma_addr_t dma_addr)
+{
+       return 1;
+}
+
+static int __dummy_dma_supported(struct device *hwdev, u64 mask)
+{
+       return 0;
+}
+
+struct dma_map_ops dummy_dma_ops = {
+       .alloc                  = __dummy_alloc,
+       .free                   = __dummy_free,
+       .mmap                   = __dummy_mmap,
+       .map_page               = __dummy_map_page,
+       .unmap_page             = __dummy_unmap_page,
+       .map_sg                 = __dummy_map_sg,
+       .unmap_sg               = __dummy_unmap_sg,
+       .sync_single_for_cpu    = __dummy_sync_single,
+       .sync_single_for_device = __dummy_sync_single,
+       .sync_sg_for_cpu        = __dummy_sync_sg,
+       .sync_sg_for_device     = __dummy_sync_sg,
+       .mapping_error          = __dummy_mapping_error,
+       .dma_supported          = __dummy_dma_supported,
+};
+EXPORT_SYMBOL(dummy_dma_ops);
+
 static int __init arm64_dma_init(void)
 {
        int ret;