Commit eb17726b authored by Sudip Mukherjee's avatar Sudip Mukherjee Committed by Linus Torvalds
Browse files

m32r: add simple dma

Some builds of m32r were failing as it tried to build few drivers which
needed dma but m32r is not having dma support.  Objections were raised
when it was tried to make those drivers depend on HAS_DMA.  So the next
best thing is to add dma support to m32r.  dma_noop is a very simple dma
with 1:1 memory mapping.

Link: http://lkml.kernel.org/r/1475949198-31623-1-git-send-email-sudipm.mukherjee@gmail.com


Signed-off-by: default avatarSudip Mukherjee <sudip.mukherjee@codethink.co.uk>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 779d5eb3
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -34,7 +34,7 @@ config NO_IOPORT_MAP
	def_bool y

config NO_DMA
	def_bool y
	def_bool n

config HZ
	int
+5 −1
Original line number Diff line number Diff line
@@ -3,5 +3,9 @@
 *
 * This file is released under the GPLv2
 */
#include <asm-generic/device.h>
struct dev_archdata {
	struct dma_map_ops *dma_ops;
};

struct pdev_archdata {
};
+32 −0
Original line number Diff line number Diff line
#ifndef _ASM_M32R_DMA_MAPPING_H
#define _ASM_M32R_DMA_MAPPING_H

#include <linux/kernel.h>
#include <linux/types.h>
#include <linux/mm.h>
#include <linux/scatterlist.h>
#include <linux/dma-debug.h>
#include <linux/io.h>

#define DMA_ERROR_CODE (~(dma_addr_t)0x0)

static inline struct dma_map_ops *get_dma_ops(struct device *dev)
{
	if (dev && dev->archdata.dma_ops)
		return dev->archdata.dma_ops;
	return &dma_noop_ops;
}

static inline void dma_cache_sync(struct device *dev, void *vaddr, size_t size,
				  enum dma_data_direction direction)
{
}

static inline bool dma_capable(struct device *dev, dma_addr_t addr, size_t size)
{
	if (!dev->dma_mask)
		return false;
	return addr + size - 1 <= *dev->dma_mask;
}

#endif /* _ASM_M32R_DMA_MAPPING_H */