diff options
author | Glauber Costa <gcosta@redhat.com> | 2008-03-25 17:36:23 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-04-19 13:19:56 -0400 |
commit | 16a3ce9bae667178f79a4951fc0ba8b515b5b733 (patch) | |
tree | bea0b8c8b96cc9f0860b2812e25c20f4b3f3e23c /arch | |
parent | 0cb0ae68323657663e4e8c0c1ce82a5af6621bbb (diff) |
x86: move dma_map_sg to common header
the old i386 implementation is moved to pci-base_32.c
Signed-off-by: Glauber Costa <gcosta@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/kernel/pci-base_32.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/arch/x86/kernel/pci-base_32.c b/arch/x86/kernel/pci-base_32.c index a8a7c7f2d23f..24741525901c 100644 --- a/arch/x86/kernel/pci-base_32.c +++ b/arch/x86/kernel/pci-base_32.c | |||
@@ -12,9 +12,28 @@ static dma_addr_t pci32_map_single(struct device *dev, void *ptr, | |||
12 | return virt_to_phys(ptr); | 12 | return virt_to_phys(ptr); |
13 | } | 13 | } |
14 | 14 | ||
15 | static int pci32_dma_map_sg(struct device *dev, struct scatterlist *sglist, | ||
16 | int nents, int direction) | ||
17 | { | ||
18 | struct scatterlist *sg; | ||
19 | int i; | ||
20 | |||
21 | WARN_ON(nents == 0 || sglist[0].length == 0); | ||
22 | |||
23 | for_each_sg(sglist, sg, nents, i) { | ||
24 | BUG_ON(!sg_page(sg)); | ||
25 | |||
26 | sg->dma_address = sg_phys(sg); | ||
27 | } | ||
28 | |||
29 | flush_write_buffers(); | ||
30 | return nents; | ||
31 | } | ||
32 | |||
15 | static const struct dma_mapping_ops pci32_dma_ops = { | 33 | static const struct dma_mapping_ops pci32_dma_ops = { |
16 | .map_single = pci32_map_single, | 34 | .map_single = pci32_map_single, |
17 | .unmap_single = NULL, | 35 | .unmap_single = NULL, |
36 | .map_sg = pci32_dma_map_sg, | ||
18 | }; | 37 | }; |
19 | 38 | ||
20 | const struct dma_mapping_ops *dma_ops = &pci32_dma_ops; | 39 | const struct dma_mapping_ops *dma_ops = &pci32_dma_ops; |