Messages in this thread Patch in this message | | | From | monstr@monstr ... | Subject | [PATCH 38/52] [microblaze] dma support | Date | Thu, 24 Jan 2008 16:03:13 +0100 |
| |
From: Michal Simek <monstr@monstr.eu>
Signed-off-by: Michal Simek <monstr@monstr.eu> --- include/asm-microblaze/dma-mapping.h | 124 ++++++++++++++++++++++++++++++++++ include/asm-microblaze/dma.h | 21 ++++++ include/asm-microblaze/scatterlist.h | 21 ++++++ 3 files changed, 166 insertions(+), 0 deletions(-) create mode 100644 include/asm-microblaze/dma-mapping.h create mode 100644 include/asm-microblaze/dma.h create mode 100644 include/asm-microblaze/scatterlist.h
diff --git a/include/asm-microblaze/dma-mapping.h b/include/asm-microblaze/dma-mapping.h new file mode 100644 index 0000000..defe1c4 --- /dev/null +++ b/include/asm-microblaze/dma-mapping.h @@ -0,0 +1,124 @@ +/* + * include/asm-microblaze/dma-mapping.h + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file "COPYING" in the main directory of this archive + * for more details. + * + * Copyright (C) 2006 Atmark Techno, Inc. + */ + +#ifndef _ASM_DMA_MAPPING_H +#define _ASM_DMA_MAPPING_H + +#include <asm/io.h> +#include <asm/bug.h> + +struct scatterlist; + +#define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f) +#define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h) + +void *consistent_alloc(gfp_t gfp, size_t size, dma_addr_t *dma_handle); +void consistent_free(void *vaddr); +void consistent_sync(void *vaddr, size_t size, int direction); +void consistent_sync_page(struct page *page, unsigned long offset, + size_t size, int direction); + +/* FIXME */ +static inline int +dma_supported(struct device *dev, u64 mask) +{ + return 0; +} + +static inline dma_addr_t +dma_map_page(struct device *dev, struct page *page, + unsigned long offset, size_t size, + enum dma_data_direction direction) +{ + BUG(); + return 0; +} + +static inline void +dma_unmap_page(struct device *dev, dma_addr_t dma_address, size_t size, + enum dma_data_direction direction) +{ + BUG(); +} + +static inline int +dma_map_sg(struct device *dev, struct scatterlist *sg, int nents, + enum dma_data_direction direction) +{ + BUG(); + return 0; +} + +static inline void +dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nhwentries, + enum dma_data_direction direction) +{ + BUG(); +} + +static inline void +dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, size_t size, + enum dma_data_direction direction) +{ + BUG(); +} + +static inline void +dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle, + size_t size, enum dma_data_direction direction) +{ + BUG(); +} + +static inline void +dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sg, int nelems, + enum dma_data_direction direction) +{ + BUG(); +} + +static inline void +dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg, int nelems, + enum dma_data_direction direction) +{ + BUG(); +} + +static inline int +dma_mapping_error(dma_addr_t dma_addr) +{ + return 0; +} + +static inline void *dma_alloc_coherent(struct device *dev, size_t size, + dma_addr_t *dma_handle, int flag) +{ + return consistent_alloc(flag, size, dma_handle); +} + +static inline void dma_free_coherent(struct device *dev, size_t size, + void *vaddr, dma_addr_t dma_handle) +{ + BUG(); +} + +static inline dma_addr_t +dma_map_single(struct device *dev, void *ptr, size_t size, + enum dma_data_direction direction) +{ + BUG_ON(direction == DMA_NONE); + + return virt_to_bus(ptr); +} + +#define dma_unmap_single(dev, addr, size, dir) do { } while (0) + + +#endif /* _ASM_DMA_MAPPING_H */ diff --git a/include/asm-microblaze/dma.h b/include/asm-microblaze/dma.h new file mode 100644 index 0000000..a0c5c41 --- /dev/null +++ b/include/asm-microblaze/dma.h @@ -0,0 +1,21 @@ +/* + * include/asm-microblaze/dma.h + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file "COPYING" in the main directory of this archive + * for more details. + * + * Copyright (C) 2006 Atmark Techno, Inc. + */ + +#ifndef _ASM_DMA_H +#define _ASM_DMA_H + +/* we don't have dma address limit. define it as zero to be + * unlimited. */ +#define MAX_DMA_ADDRESS (0) + +#define ISA_DMA_THRESHOLD (0) + + +#endif /* _ASM_DMA_H */ diff --git a/include/asm-microblaze/scatterlist.h b/include/asm-microblaze/scatterlist.h new file mode 100644 index 0000000..389bdc8 --- /dev/null +++ b/include/asm-microblaze/scatterlist.h @@ -0,0 +1,21 @@ +/* + * include/asm-microblaze/scatterlist.h + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file "COPYING" in the main directory of this archive + * for more details. + * + * Copyright (C) 2006 Atmark Techno, Inc. + */ + +#ifndef _ASM_SCATTERLIST_H +#define _ASM_SCATTERLIST_H + +struct scatterlist { + unsigned long page_link; + unsigned int offset; + dma_addr_t dma_address; + unsigned int length; +}; + +#endif /* _ASM_SCATTERLIST_H */ -- 1.5.4.rc4.14.g6fc74
| |