Loading arch/powerpc/Kconfig +1 −0 Original line number Diff line number Diff line Loading @@ -121,6 +121,7 @@ config PPC select HAVE_ARCH_TRACEHOOK select HAVE_LMB select HAVE_DMA_ATTRS select HAVE_DMA_API_DEBUG select USE_GENERIC_SMP_HELPERS if SMP select HAVE_OPROFILE select HAVE_SYSCALL_WRAPPERS if PPC64 Loading arch/powerpc/include/asm/dma-mapping.h +10 −1 Original line number Diff line number Diff line Loading @@ -127,9 +127,15 @@ static inline void *dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle, gfp_t flag) { struct dma_map_ops *dma_ops = get_dma_ops(dev); void *cpu_addr; BUG_ON(!dma_ops); return dma_ops->alloc_coherent(dev, size, dma_handle, flag); cpu_addr = dma_ops->alloc_coherent(dev, size, dma_handle, flag); debug_dma_alloc_coherent(dev, size, *dma_handle, cpu_addr); return cpu_addr; } static inline void dma_free_coherent(struct device *dev, size_t size, Loading @@ -138,6 +144,9 @@ static inline void dma_free_coherent(struct device *dev, size_t size, struct dma_map_ops *dma_ops = get_dma_ops(dev); BUG_ON(!dma_ops); debug_dma_free_coherent(dev, size, cpu_addr, dma_handle); dma_ops->free_coherent(dev, size, cpu_addr, dma_handle); } Loading arch/powerpc/kernel/dma.c +11 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ #include <linux/device.h> #include <linux/dma-mapping.h> #include <linux/dma-debug.h> #include <linux/lmb.h> #include <asm/bug.h> #include <asm/abs_addr.h> Loading Loading @@ -156,3 +157,13 @@ struct dma_map_ops dma_direct_ops = { #endif }; EXPORT_SYMBOL(dma_direct_ops); #define PREALLOC_DMA_DEBUG_ENTRIES (1 << 16) static int __init dma_init(void) { dma_debug_init(PREALLOC_DMA_DEBUG_ENTRIES); return 0; } fs_initcall(dma_init); Loading
arch/powerpc/Kconfig +1 −0 Original line number Diff line number Diff line Loading @@ -121,6 +121,7 @@ config PPC select HAVE_ARCH_TRACEHOOK select HAVE_LMB select HAVE_DMA_ATTRS select HAVE_DMA_API_DEBUG select USE_GENERIC_SMP_HELPERS if SMP select HAVE_OPROFILE select HAVE_SYSCALL_WRAPPERS if PPC64 Loading
arch/powerpc/include/asm/dma-mapping.h +10 −1 Original line number Diff line number Diff line Loading @@ -127,9 +127,15 @@ static inline void *dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle, gfp_t flag) { struct dma_map_ops *dma_ops = get_dma_ops(dev); void *cpu_addr; BUG_ON(!dma_ops); return dma_ops->alloc_coherent(dev, size, dma_handle, flag); cpu_addr = dma_ops->alloc_coherent(dev, size, dma_handle, flag); debug_dma_alloc_coherent(dev, size, *dma_handle, cpu_addr); return cpu_addr; } static inline void dma_free_coherent(struct device *dev, size_t size, Loading @@ -138,6 +144,9 @@ static inline void dma_free_coherent(struct device *dev, size_t size, struct dma_map_ops *dma_ops = get_dma_ops(dev); BUG_ON(!dma_ops); debug_dma_free_coherent(dev, size, cpu_addr, dma_handle); dma_ops->free_coherent(dev, size, cpu_addr, dma_handle); } Loading
arch/powerpc/kernel/dma.c +11 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ #include <linux/device.h> #include <linux/dma-mapping.h> #include <linux/dma-debug.h> #include <linux/lmb.h> #include <asm/bug.h> #include <asm/abs_addr.h> Loading Loading @@ -156,3 +157,13 @@ struct dma_map_ops dma_direct_ops = { #endif }; EXPORT_SYMBOL(dma_direct_ops); #define PREALLOC_DMA_DEBUG_ENTRIES (1 << 16) static int __init dma_init(void) { dma_debug_init(PREALLOC_DMA_DEBUG_ENTRIES); return 0; } fs_initcall(dma_init);