diff options
author | Arnd Bergmann <arnd@arndb.de> | 2011-09-20 22:15:55 +0200 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2011-09-20 22:15:55 +0200 |
commit | da1c5afee092a2b51136ac3bf20c68bfff2924be (patch) | |
tree | fa71b9e3af25c870012a22e4cb72547f9aafcfd0 /arch/openrisc/kernel/dma.c | |
parent | 1fdb4888e45f1413972a8e9da55f3ffc08b9abcb (diff) | |
parent | 4c59de052e7167a3bcf3f32c5ea4c9a5ef07386a (diff) |
Merge branch 'samsung/cleanup' into next/cleanup
Diffstat (limited to 'arch/openrisc/kernel/dma.c')
-rw-r--r-- | arch/openrisc/kernel/dma.c | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/arch/openrisc/kernel/dma.c b/arch/openrisc/kernel/dma.c index 968d3ee477e..f1c8ee2895d 100644 --- a/arch/openrisc/kernel/dma.c +++ b/arch/openrisc/kernel/dma.c @@ -154,6 +154,33 @@ void or1k_unmap_page(struct device *dev, dma_addr_t dma_handle, /* Nothing special to do here... */ } +int or1k_map_sg(struct device *dev, struct scatterlist *sg, + int nents, enum dma_data_direction dir, + struct dma_attrs *attrs) +{ + struct scatterlist *s; + int i; + + for_each_sg(sg, s, nents, i) { + s->dma_address = or1k_map_page(dev, sg_page(s), s->offset, + s->length, dir, NULL); + } + + return nents; +} + +void or1k_unmap_sg(struct device *dev, struct scatterlist *sg, + int nents, enum dma_data_direction dir, + struct dma_attrs *attrs) +{ + struct scatterlist *s; + int i; + + for_each_sg(sg, s, nents, i) { + or1k_unmap_page(dev, sg_dma_address(s), sg_dma_len(s), dir, NULL); + } +} + void or1k_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, size_t size, enum dma_data_direction dir) @@ -187,5 +214,4 @@ static int __init dma_init(void) return 0; } - fs_initcall(dma_init); |