Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0
0002 /*
0003  * Dummy DMA ops that always fail.
0004  */
0005 #include <linux/dma-map-ops.h>
0006 
0007 static int dma_dummy_mmap(struct device *dev, struct vm_area_struct *vma,
0008         void *cpu_addr, dma_addr_t dma_addr, size_t size,
0009         unsigned long attrs)
0010 {
0011     return -ENXIO;
0012 }
0013 
0014 static dma_addr_t dma_dummy_map_page(struct device *dev, struct page *page,
0015         unsigned long offset, size_t size, enum dma_data_direction dir,
0016         unsigned long attrs)
0017 {
0018     return DMA_MAPPING_ERROR;
0019 }
0020 
0021 static int dma_dummy_map_sg(struct device *dev, struct scatterlist *sgl,
0022         int nelems, enum dma_data_direction dir,
0023         unsigned long attrs)
0024 {
0025     return -EINVAL;
0026 }
0027 
0028 static int dma_dummy_supported(struct device *hwdev, u64 mask)
0029 {
0030     return 0;
0031 }
0032 
0033 const struct dma_map_ops dma_dummy_ops = {
0034     .mmap                   = dma_dummy_mmap,
0035     .map_page               = dma_dummy_map_page,
0036     .map_sg                 = dma_dummy_map_sg,
0037     .dma_supported          = dma_dummy_supported,
0038 };