linux/kernel/dma/dummy.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0
   2/*
   3 * Dummy DMA ops that always fail.
   4 */
   5#include <linux/dma-map-ops.h>
   6
   7static int dma_dummy_mmap(struct device *dev, struct vm_area_struct *vma,
   8                void *cpu_addr, dma_addr_t dma_addr, size_t size,
   9                unsigned long attrs)
  10{
  11        return -ENXIO;
  12}
  13
  14static dma_addr_t dma_dummy_map_page(struct device *dev, struct page *page,
  15                unsigned long offset, size_t size, enum dma_data_direction dir,
  16                unsigned long attrs)
  17{
  18        return DMA_MAPPING_ERROR;
  19}
  20
  21static int dma_dummy_map_sg(struct device *dev, struct scatterlist *sgl,
  22                int nelems, enum dma_data_direction dir,
  23                unsigned long attrs)
  24{
  25        return -EINVAL;
  26}
  27
  28static int dma_dummy_supported(struct device *hwdev, u64 mask)
  29{
  30        return 0;
  31}
  32
  33const struct dma_map_ops dma_dummy_ops = {
  34        .mmap                   = dma_dummy_mmap,
  35        .map_page               = dma_dummy_map_page,
  36        .map_sg                 = dma_dummy_map_sg,
  37        .dma_supported          = dma_dummy_supported,
  38};
  39