linux/kernel/dma/debug.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0-only */
   2/*
   3 * Copyright (C) 2008 Advanced Micro Devices, Inc.
   4 *
   5 * Author: Joerg Roedel <joerg.roedel@amd.com>
   6 */
   7
   8#ifndef _KERNEL_DMA_DEBUG_H
   9#define _KERNEL_DMA_DEBUG_H
  10
  11#ifdef CONFIG_DMA_API_DEBUG
  12extern void debug_dma_map_page(struct device *dev, struct page *page,
  13                               size_t offset, size_t size,
  14                               int direction, dma_addr_t dma_addr,
  15                               unsigned long attrs);
  16
  17extern void debug_dma_unmap_page(struct device *dev, dma_addr_t addr,
  18                                 size_t size, int direction);
  19
  20extern void debug_dma_map_sg(struct device *dev, struct scatterlist *sg,
  21                             int nents, int mapped_ents, int direction,
  22                             unsigned long attrs);
  23
  24extern void debug_dma_unmap_sg(struct device *dev, struct scatterlist *sglist,
  25                               int nelems, int dir);
  26
  27extern void debug_dma_alloc_coherent(struct device *dev, size_t size,
  28                                     dma_addr_t dma_addr, void *virt,
  29                                     unsigned long attrs);
  30
  31extern void debug_dma_free_coherent(struct device *dev, size_t size,
  32                                    void *virt, dma_addr_t addr);
  33
  34extern void debug_dma_map_resource(struct device *dev, phys_addr_t addr,
  35                                   size_t size, int direction,
  36                                   dma_addr_t dma_addr,
  37                                   unsigned long attrs);
  38
  39extern void debug_dma_unmap_resource(struct device *dev, dma_addr_t dma_addr,
  40                                     size_t size, int direction);
  41
  42extern void debug_dma_sync_single_for_cpu(struct device *dev,
  43                                          dma_addr_t dma_handle, size_t size,
  44                                          int direction);
  45
  46extern void debug_dma_sync_single_for_device(struct device *dev,
  47                                             dma_addr_t dma_handle,
  48                                             size_t size, int direction);
  49
  50extern void debug_dma_sync_sg_for_cpu(struct device *dev,
  51                                      struct scatterlist *sg,
  52                                      int nelems, int direction);
  53
  54extern void debug_dma_sync_sg_for_device(struct device *dev,
  55                                         struct scatterlist *sg,
  56                                         int nelems, int direction);
  57#else /* CONFIG_DMA_API_DEBUG */
  58static inline void debug_dma_map_page(struct device *dev, struct page *page,
  59                                      size_t offset, size_t size,
  60                                      int direction, dma_addr_t dma_addr,
  61                                      unsigned long attrs)
  62{
  63}
  64
  65static inline void debug_dma_unmap_page(struct device *dev, dma_addr_t addr,
  66                                        size_t size, int direction)
  67{
  68}
  69
  70static inline void debug_dma_map_sg(struct device *dev, struct scatterlist *sg,
  71                                    int nents, int mapped_ents, int direction,
  72                                    unsigned long attrs)
  73{
  74}
  75
  76static inline void debug_dma_unmap_sg(struct device *dev,
  77                                      struct scatterlist *sglist,
  78                                      int nelems, int dir)
  79{
  80}
  81
  82static inline void debug_dma_alloc_coherent(struct device *dev, size_t size,
  83                                            dma_addr_t dma_addr, void *virt,
  84                                            unsigned long attrs)
  85{
  86}
  87
  88static inline void debug_dma_free_coherent(struct device *dev, size_t size,
  89                                           void *virt, dma_addr_t addr)
  90{
  91}
  92
  93static inline void debug_dma_map_resource(struct device *dev, phys_addr_t addr,
  94                                          size_t size, int direction,
  95                                          dma_addr_t dma_addr,
  96                                          unsigned long attrs)
  97{
  98}
  99
 100static inline void debug_dma_unmap_resource(struct device *dev,
 101                                            dma_addr_t dma_addr, size_t size,
 102                                            int direction)
 103{
 104}
 105
 106static inline void debug_dma_sync_single_for_cpu(struct device *dev,
 107                                                 dma_addr_t dma_handle,
 108                                                 size_t size, int direction)
 109{
 110}
 111
 112static inline void debug_dma_sync_single_for_device(struct device *dev,
 113                                                    dma_addr_t dma_handle,
 114                                                    size_t size, int direction)
 115{
 116}
 117
 118static inline void debug_dma_sync_sg_for_cpu(struct device *dev,
 119                                             struct scatterlist *sg,
 120                                             int nelems, int direction)
 121{
 122}
 123
 124static inline void debug_dma_sync_sg_for_device(struct device *dev,
 125                                                struct scatterlist *sg,
 126                                                int nelems, int direction)
 127{
 128}
 129#endif /* CONFIG_DMA_API_DEBUG */
 130#endif /* _KERNEL_DMA_DEBUG_H */
 131