mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
213 lines
5.6 KiB
213 lines
5.6 KiB
/* |
|
* Copyright (C) 2008 Advanced Micro Devices, Inc. |
|
* |
|
* Author: Joerg Roedel <[email protected]> |
|
* |
|
* 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 |
|
|
|
#include <linux/types.h> |
|
|
|
struct device; |
|
struct scatterlist; |
|
struct bus_type; |
|
|
|
#ifdef CONFIG_DMA_API_DEBUG |
|
|
|
extern void dma_debug_add_bus(struct bus_type *bus); |
|
|
|
extern void dma_debug_init(u32 num_entries); |
|
|
|
extern int dma_debug_resize_entries(u32 num_entries); |
|
|
|
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_mapping_error(struct device *dev, dma_addr_t dma_addr); |
|
|
|
extern void debug_dma_unmap_page(struct device *dev, dma_addr_t addr, |
|
size_t size, int direction, bool map_single); |
|
|
|
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); |
|
|
|
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); |
|
|
|
extern void debug_dma_map_resource(struct device *dev, phys_addr_t addr, |
|
size_t size, int direction, |
|
dma_addr_t dma_addr); |
|
|
|
extern void debug_dma_unmap_resource(struct device *dev, dma_addr_t dma_addr, |
|
size_t size, int direction); |
|
|
|
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); |
|
|
|
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); |
|
|
|
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); |
|
|
|
extern void debug_dma_dump_mappings(struct device *dev); |
|
|
|
extern void debug_dma_assert_idle(struct page *page); |
|
|
|
#else /* CONFIG_DMA_API_DEBUG */ |
|
|
|
static inline void dma_debug_add_bus(struct bus_type *bus) |
|
{ |
|
} |
|
|
|
static inline void dma_debug_init(u32 num_entries) |
|
{ |
|
} |
|
|
|
static inline int dma_debug_resize_entries(u32 num_entries) |
|
{ |
|
return 0; |
|
} |
|
|
|
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_mapping_error(struct device *dev, |
|
dma_addr_t dma_addr) |
|
{ |
|
} |
|
|
|
static inline void debug_dma_unmap_page(struct device *dev, dma_addr_t addr, |
|
size_t size, int direction, |
|
bool map_single) |
|
{ |
|
} |
|
|
|
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) |
|
{ |
|
} |
|
|
|
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) |
|
{ |
|
} |
|
|
|
static inline void debug_dma_map_resource(struct device *dev, phys_addr_t addr, |
|
size_t size, int direction, |
|
dma_addr_t dma_addr) |
|
{ |
|
} |
|
|
|
static inline void debug_dma_unmap_resource(struct device *dev, |
|
dma_addr_t dma_addr, size_t size, |
|
int direction) |
|
{ |
|
} |
|
|
|
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) |
|
{ |
|
} |
|
|
|
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) |
|
{ |
|
} |
|
|
|
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) |
|
{ |
|
} |
|
|
|
static inline void debug_dma_dump_mappings(struct device *dev) |
|
{ |
|
} |
|
|
|
static inline void debug_dma_assert_idle(struct page *page) |
|
{ |
|
} |
|
|
|
#endif /* CONFIG_DMA_API_DEBUG */ |
|
|
|
#endif /* __DMA_DEBUG_H */
|
|
|