Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 80d3e8ab authored by FUJITA Tomonori's avatar FUJITA Tomonori Committed by Benjamin Herrenschmidt
Browse files

powerpc: Add CONFIG_DMA_API_DEBUG support

parent 4a9a6bfe
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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
+10 −1
Original line number Diff line number Diff line
@@ -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,
@@ -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);
}

+11 −0
Original line number Diff line number Diff line
@@ -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>
@@ -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);