diff options
author | GuanXuetao <gxt@mprc.pku.edu.cn> | 2011-01-15 05:18:29 -0500 |
---|---|---|
committer | GuanXuetao <gxt@mprc.pku.edu.cn> | 2011-03-16 21:19:09 -0400 |
commit | 10c9c10c31514564b09c153432a42ffaea3ce831 (patch) | |
tree | 04a60b9a1e48eaa2d9346e265a1c2fe2db5ec670 /arch/unicore32/mm/dma-swiotlb.c | |
parent | 56372b0b2f533c9a25bd40a0577405f6ddb7cff2 (diff) |
unicore32 core architecture: mm related: consistent device DMA handling
This patch implements consistent device DMA handling of memory management.
DMA device operations are also here.
Signed-off-by: Guan Xuetao <gxt@mprc.pku.edu.cn>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch/unicore32/mm/dma-swiotlb.c')
-rw-r--r-- | arch/unicore32/mm/dma-swiotlb.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/arch/unicore32/mm/dma-swiotlb.c b/arch/unicore32/mm/dma-swiotlb.c new file mode 100644 index 000000000000..bfa9fbb2bbb1 --- /dev/null +++ b/arch/unicore32/mm/dma-swiotlb.c | |||
@@ -0,0 +1,34 @@ | |||
1 | /* | ||
2 | * Contains routines needed to support swiotlb for UniCore32. | ||
3 | * | ||
4 | * Copyright (C) 2010 Guan Xuetao | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify it | ||
7 | * under the terms of the GNU General Public License as published by the | ||
8 | * Free Software Foundation; either version 2 of the License, or (at your | ||
9 | * option) any later version. | ||
10 | */ | ||
11 | #include <linux/pci.h> | ||
12 | #include <linux/cache.h> | ||
13 | #include <linux/module.h> | ||
14 | #include <linux/dma-mapping.h> | ||
15 | #include <linux/swiotlb.h> | ||
16 | #include <linux/bootmem.h> | ||
17 | |||
18 | #include <asm/dma.h> | ||
19 | |||
20 | struct dma_map_ops swiotlb_dma_map_ops = { | ||
21 | .alloc_coherent = swiotlb_alloc_coherent, | ||
22 | .free_coherent = swiotlb_free_coherent, | ||
23 | .map_sg = swiotlb_map_sg_attrs, | ||
24 | .unmap_sg = swiotlb_unmap_sg_attrs, | ||
25 | .dma_supported = swiotlb_dma_supported, | ||
26 | .map_page = swiotlb_map_page, | ||
27 | .unmap_page = swiotlb_unmap_page, | ||
28 | .sync_single_for_cpu = swiotlb_sync_single_for_cpu, | ||
29 | .sync_single_for_device = swiotlb_sync_single_for_device, | ||
30 | .sync_sg_for_cpu = swiotlb_sync_sg_for_cpu, | ||
31 | .sync_sg_for_device = swiotlb_sync_sg_for_device, | ||
32 | .mapping_error = swiotlb_dma_mapping_error, | ||
33 | }; | ||
34 | EXPORT_SYMBOL(swiotlb_dma_map_ops); | ||