Blame view

include/linux/dma-debug.h 4.8 KB
f2f45e5f3   Joerg Roedel   dma-debug: add he...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
  /*
   * Copyright (C) 2008 Advanced Micro Devices, Inc.
   *
   * Author: Joerg Roedel <joerg.roedel@amd.com>
   *
   * This program is free software; you can redistribute it and/or modify it
   * under the terms of the GNU General Public License version 2 as published
   * by the Free Software Foundation.
   *
   * This program is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   * GNU General Public License for more details.
   *
   * You should have received a copy of the GNU General Public License
   * along with this program; if not, write to the Free Software
   * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
   */
  
  #ifndef __DMA_DEBUG_H
  #define __DMA_DEBUG_H
6bf078715   Joerg Roedel   dma-debug: add in...
22
  #include <linux/types.h>
f2f45e5f3   Joerg Roedel   dma-debug: add he...
23
  struct device;
972aa45ce   Joerg Roedel   dma-debug: add ad...
24
  struct scatterlist;
41531c8f5   Joerg Roedel   dma-debug: add a ...
25
  struct bus_type;
f2f45e5f3   Joerg Roedel   dma-debug: add he...
26

6bf078715   Joerg Roedel   dma-debug: add in...
27
  #ifdef CONFIG_DMA_API_DEBUG
41531c8f5   Joerg Roedel   dma-debug: add a ...
28
  extern void dma_debug_add_bus(struct bus_type *bus);
6bf078715   Joerg Roedel   dma-debug: add in...
29
  extern void dma_debug_init(u32 num_entries);
e6a1a89d5   FUJITA Tomonori   dma-debug: add dm...
30
  extern int dma_debug_resize_entries(u32 num_entries);
f62bc980e   Joerg Roedel   dma-debug: add ch...
31
32
33
34
35
36
37
  extern void debug_dma_map_page(struct device *dev, struct page *page,
  			       size_t offset, size_t size,
  			       int direction, dma_addr_t dma_addr,
  			       bool map_single);
  
  extern void debug_dma_unmap_page(struct device *dev, dma_addr_t addr,
  				 size_t size, int direction, bool map_single);
972aa45ce   Joerg Roedel   dma-debug: add ad...
38
39
40
41
42
  extern void debug_dma_map_sg(struct device *dev, struct scatterlist *sg,
  			     int nents, int mapped_ents, int direction);
  
  extern void debug_dma_unmap_sg(struct device *dev, struct scatterlist *sglist,
  			       int nelems, int dir);
f62bc980e   Joerg Roedel   dma-debug: add ch...
43

6bfd44987   Joerg Roedel   dma-debug: add ch...
44
45
46
47
48
  extern void debug_dma_alloc_coherent(struct device *dev, size_t size,
  				     dma_addr_t dma_addr, void *virt);
  
  extern void debug_dma_free_coherent(struct device *dev, size_t size,
  				    void *virt, dma_addr_t addr);
b9d2317e0   Joerg Roedel   dma-debug: add ch...
49
50
51
52
53
54
55
  extern void debug_dma_sync_single_for_cpu(struct device *dev,
  					  dma_addr_t dma_handle, size_t size,
  					  int direction);
  
  extern void debug_dma_sync_single_for_device(struct device *dev,
  					     dma_addr_t dma_handle,
  					     size_t size, int direction);
948408ba3   Joerg Roedel   dma-debug: add ch...
56
57
58
59
60
61
62
63
64
65
  extern void debug_dma_sync_single_range_for_cpu(struct device *dev,
  						dma_addr_t dma_handle,
  						unsigned long offset,
  						size_t size,
  						int direction);
  
  extern void debug_dma_sync_single_range_for_device(struct device *dev,
  						   dma_addr_t dma_handle,
  						   unsigned long offset,
  						   size_t size, int direction);
a31fba5d6   Joerg Roedel   dma-debug: add ch...
66
67
68
69
70
71
72
  extern void debug_dma_sync_sg_for_cpu(struct device *dev,
  				      struct scatterlist *sg,
  				      int nelems, int direction);
  
  extern void debug_dma_sync_sg_for_device(struct device *dev,
  					 struct scatterlist *sg,
  					 int nelems, int direction);
ac26c18bd   David Woodhouse   dma-debug: add fu...
73
  extern void debug_dma_dump_mappings(struct device *dev);
6bf078715   Joerg Roedel   dma-debug: add in...
74
  #else /* CONFIG_DMA_API_DEBUG */
84be58d46   Ingo Molnar   dma-debug: fix dm...
75
  static inline void dma_debug_add_bus(struct bus_type *bus)
41531c8f5   Joerg Roedel   dma-debug: add a ...
76
77
  {
  }
6bf078715   Joerg Roedel   dma-debug: add in...
78
79
80
  static inline void dma_debug_init(u32 num_entries)
  {
  }
e6a1a89d5   FUJITA Tomonori   dma-debug: add dm...
81
82
83
84
  static inline int dma_debug_resize_entries(u32 num_entries)
  {
  	return 0;
  }
f62bc980e   Joerg Roedel   dma-debug: add ch...
85
86
87
88
89
90
91
92
93
94
95
96
  static inline void debug_dma_map_page(struct device *dev, struct page *page,
  				      size_t offset, size_t size,
  				      int direction, dma_addr_t dma_addr,
  				      bool map_single)
  {
  }
  
  static inline void debug_dma_unmap_page(struct device *dev, dma_addr_t addr,
  					size_t size, int direction,
  					bool map_single)
  {
  }
972aa45ce   Joerg Roedel   dma-debug: add ad...
97
98
99
100
101
102
103
104
105
106
  static inline void debug_dma_map_sg(struct device *dev, struct scatterlist *sg,
  				    int nents, int mapped_ents, int direction)
  {
  }
  
  static inline void debug_dma_unmap_sg(struct device *dev,
  				      struct scatterlist *sglist,
  				      int nelems, int dir)
  {
  }
f62bc980e   Joerg Roedel   dma-debug: add ch...
107

6bfd44987   Joerg Roedel   dma-debug: add ch...
108
109
110
111
112
113
114
115
116
  static inline void debug_dma_alloc_coherent(struct device *dev, size_t size,
  					    dma_addr_t dma_addr, void *virt)
  {
  }
  
  static inline void debug_dma_free_coherent(struct device *dev, size_t size,
  					   void *virt, dma_addr_t addr)
  {
  }
b9d2317e0   Joerg Roedel   dma-debug: add ch...
117
118
119
120
121
122
123
124
125
126
127
  static inline void debug_dma_sync_single_for_cpu(struct device *dev,
  						 dma_addr_t dma_handle,
  						 size_t size, int direction)
  {
  }
  
  static inline void debug_dma_sync_single_for_device(struct device *dev,
  						    dma_addr_t dma_handle,
  						    size_t size, int direction)
  {
  }
948408ba3   Joerg Roedel   dma-debug: add ch...
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
  static inline void debug_dma_sync_single_range_for_cpu(struct device *dev,
  						       dma_addr_t dma_handle,
  						       unsigned long offset,
  						       size_t size,
  						       int direction)
  {
  }
  
  static inline void debug_dma_sync_single_range_for_device(struct device *dev,
  							  dma_addr_t dma_handle,
  							  unsigned long offset,
  							  size_t size,
  							  int direction)
  {
  }
a31fba5d6   Joerg Roedel   dma-debug: add ch...
143
144
145
146
147
148
149
150
151
152
153
  static inline void debug_dma_sync_sg_for_cpu(struct device *dev,
  					     struct scatterlist *sg,
  					     int nelems, int direction)
  {
  }
  
  static inline void debug_dma_sync_sg_for_device(struct device *dev,
  						struct scatterlist *sg,
  						int nelems, int direction)
  {
  }
ac26c18bd   David Woodhouse   dma-debug: add fu...
154
155
156
  static inline void debug_dma_dump_mappings(struct device *dev)
  {
  }
6bf078715   Joerg Roedel   dma-debug: add in...
157
  #endif /* CONFIG_DMA_API_DEBUG */
f2f45e5f3   Joerg Roedel   dma-debug: add he...
158
  #endif /* __DMA_DEBUG_H */