| 
									
										
										
										
											2009-01-09 12:19:52 +01:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * 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
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-09 12:54:42 +01:00
										 |  |  | #include <linux/types.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-09 12:19:52 +01:00
										 |  |  | struct device; | 
					
						
							| 
									
										
										
										
											2009-01-09 14:19:54 +01:00
										 |  |  | struct scatterlist; | 
					
						
							| 
									
										
										
										
											2009-03-16 17:32:14 +01:00
										 |  |  | struct bus_type; | 
					
						
							| 
									
										
										
										
											2009-01-09 12:19:52 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-09 12:54:42 +01:00
										 |  |  | #ifdef CONFIG_DMA_API_DEBUG
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-16 17:32:14 +01:00
										 |  |  | extern void dma_debug_add_bus(struct bus_type *bus); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-09 12:54:42 +01:00
										 |  |  | extern void dma_debug_init(u32 num_entries); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-15 18:22:41 +09:00
										 |  |  | extern int dma_debug_resize_entries(u32 num_entries); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-09 14:14:49 +01:00
										 |  |  | 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); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-10-08 11:08:06 -06:00
										 |  |  | extern void debug_dma_mapping_error(struct device *dev, dma_addr_t dma_addr); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-09 14:14:49 +01:00
										 |  |  | extern void debug_dma_unmap_page(struct device *dev, dma_addr_t addr, | 
					
						
							|  |  |  | 				 size_t size, int direction, bool map_single); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-09 14:19:54 +01:00
										 |  |  | 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); | 
					
						
							| 
									
										
										
										
											2009-01-09 14:14:49 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-09 14:38:50 +01:00
										 |  |  | 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); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-09 14:43:04 +01:00
										 |  |  | 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); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-09 14:55:38 +01:00
										 |  |  | 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); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-09 15:01:12 +01:00
										 |  |  | 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); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-12 16:19:13 +01:00
										 |  |  | extern void debug_dma_dump_mappings(struct device *dev); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-09 12:54:42 +01:00
										 |  |  | #else /* CONFIG_DMA_API_DEBUG */
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-18 11:50:29 +01:00
										 |  |  | static inline void dma_debug_add_bus(struct bus_type *bus) | 
					
						
							| 
									
										
										
										
											2009-03-16 17:32:14 +01:00
										 |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-09 12:54:42 +01:00
										 |  |  | static inline void dma_debug_init(u32 num_entries) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-15 18:22:41 +09:00
										 |  |  | static inline int dma_debug_resize_entries(u32 num_entries) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	return 0; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-09 14:14:49 +01:00
										 |  |  | 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) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-10-08 11:08:06 -06:00
										 |  |  | static inline void debug_dma_mapping_error(struct device *dev, | 
					
						
							|  |  |  | 					  dma_addr_t dma_addr) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-09 14:14:49 +01:00
										 |  |  | static inline void debug_dma_unmap_page(struct device *dev, dma_addr_t addr, | 
					
						
							|  |  |  | 					size_t size, int direction, | 
					
						
							|  |  |  | 					bool map_single) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-09 14:19:54 +01:00
										 |  |  | 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) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2009-01-09 14:14:49 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-09 14:38:50 +01:00
										 |  |  | 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) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-09 14:43:04 +01:00
										 |  |  | 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) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-09 14:55:38 +01:00
										 |  |  | 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) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-09 15:01:12 +01:00
										 |  |  | 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) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-12 16:19:13 +01:00
										 |  |  | static inline void debug_dma_dump_mappings(struct device *dev) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-09 12:54:42 +01:00
										 |  |  | #endif /* CONFIG_DMA_API_DEBUG */
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-09 12:19:52 +01:00
										 |  |  | #endif /* __DMA_DEBUG_H */
 |