diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2007-10-17 02:29:42 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-17 11:42:57 -0400 |
commit | 622a9edd919de98ef59571ae6c40c7458244e3f2 (patch) | |
tree | c25684f90ed52c459c39d97d6ab641fe3bb6b09d /arch | |
parent | bc154b1efb7f8430ea9faabd5953ebc411f8ead5 (diff) |
Remove dma_cache_(wback|inv|wback_inv) functions
dma_cache_(wback|inv|wback_inv) were the earliest attempt on a generalized
cache managment API for I/O purposes. Originally it was basically the raw
MIPS low level cache API exported to the entire world. The API has
suffered from a lack of documentation, was not very widely used unlike it's
more modern brothers and can easily be replaced by dma_cache_sync. So
remove it rsp. turn the surviving bits back into an arch private API, as
discussed on linux-arch.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Acked-by: Paul Mundt <lethal@linux-sh.org>
Acked-by: Paul Mackerras <paulus@samba.org>
Acked-by: David S. Miller <davem@davemloft.net>
Acked-by: Kyle McMartin <kyle@parisc-linux.org>
Acked-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
Cc: <linux-arch@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/avr32/mm/dma-coherent.c | 6 | ||||
-rw-r--r-- | arch/mips/mm/cache.c | 2 | ||||
-rw-r--r-- | arch/sh/drivers/pci/dma-dreamcast.c | 2 | ||||
-rw-r--r-- | arch/sh/mm/consistent.c | 8 | ||||
-rw-r--r-- | arch/sh64/mm/consistent.c | 3 |
5 files changed, 10 insertions, 11 deletions
diff --git a/arch/avr32/mm/dma-coherent.c b/arch/avr32/mm/dma-coherent.c index 099212d4567c..177fea8f7b71 100644 --- a/arch/avr32/mm/dma-coherent.c +++ b/arch/avr32/mm/dma-coherent.c | |||
@@ -21,13 +21,13 @@ void dma_cache_sync(struct device *dev, void *vaddr, size_t size, int direction) | |||
21 | 21 | ||
22 | switch (direction) { | 22 | switch (direction) { |
23 | case DMA_FROM_DEVICE: /* invalidate only */ | 23 | case DMA_FROM_DEVICE: /* invalidate only */ |
24 | dma_cache_inv(vaddr, size); | 24 | invalidate_dcache_region(vaddr, size); |
25 | break; | 25 | break; |
26 | case DMA_TO_DEVICE: /* writeback only */ | 26 | case DMA_TO_DEVICE: /* writeback only */ |
27 | dma_cache_wback(vaddr, size); | 27 | clean_dcache_region(vaddr, size); |
28 | break; | 28 | break; |
29 | case DMA_BIDIRECTIONAL: /* writeback and invalidate */ | 29 | case DMA_BIDIRECTIONAL: /* writeback and invalidate */ |
30 | dma_cache_wback_inv(vaddr, size); | 30 | flush_dcache_region(vaddr, size); |
31 | break; | 31 | break; |
32 | default: | 32 | default: |
33 | BUG(); | 33 | BUG(); |
diff --git a/arch/mips/mm/cache.c b/arch/mips/mm/cache.c index 43dde874f414..81f30ac2bff9 100644 --- a/arch/mips/mm/cache.c +++ b/arch/mips/mm/cache.c | |||
@@ -47,8 +47,6 @@ void (*_dma_cache_wback)(unsigned long start, unsigned long size); | |||
47 | void (*_dma_cache_inv)(unsigned long start, unsigned long size); | 47 | void (*_dma_cache_inv)(unsigned long start, unsigned long size); |
48 | 48 | ||
49 | EXPORT_SYMBOL(_dma_cache_wback_inv); | 49 | EXPORT_SYMBOL(_dma_cache_wback_inv); |
50 | EXPORT_SYMBOL(_dma_cache_wback); | ||
51 | EXPORT_SYMBOL(_dma_cache_inv); | ||
52 | 50 | ||
53 | #endif /* CONFIG_DMA_NONCOHERENT */ | 51 | #endif /* CONFIG_DMA_NONCOHERENT */ |
54 | 52 | ||
diff --git a/arch/sh/drivers/pci/dma-dreamcast.c b/arch/sh/drivers/pci/dma-dreamcast.c index 230d6ec0d239..888a34050599 100644 --- a/arch/sh/drivers/pci/dma-dreamcast.c +++ b/arch/sh/drivers/pci/dma-dreamcast.c | |||
@@ -51,7 +51,7 @@ void *dreamcast_consistent_alloc(struct device *dev, size_t size, | |||
51 | buf = P2SEGADDR(buf); | 51 | buf = P2SEGADDR(buf); |
52 | 52 | ||
53 | /* Flush the dcache before we hand off the buffer */ | 53 | /* Flush the dcache before we hand off the buffer */ |
54 | dma_cache_wback_inv((void *)buf, size); | 54 | __flush_purge_region((void *)buf, size); |
55 | 55 | ||
56 | return (void *)buf; | 56 | return (void *)buf; |
57 | } | 57 | } |
diff --git a/arch/sh/mm/consistent.c b/arch/sh/mm/consistent.c index 38c82d890ffd..e220c29a3c00 100644 --- a/arch/sh/mm/consistent.c +++ b/arch/sh/mm/consistent.c | |||
@@ -34,7 +34,7 @@ void *consistent_alloc(gfp_t gfp, size_t size, dma_addr_t *handle) | |||
34 | /* | 34 | /* |
35 | * We must flush the cache before we pass it on to the device | 35 | * We must flush the cache before we pass it on to the device |
36 | */ | 36 | */ |
37 | dma_cache_wback_inv(ret, size); | 37 | __flush_purge_region(ret, size); |
38 | 38 | ||
39 | page = virt_to_page(ret); | 39 | page = virt_to_page(ret); |
40 | free = page + (size >> PAGE_SHIFT); | 40 | free = page + (size >> PAGE_SHIFT); |
@@ -68,13 +68,13 @@ void consistent_sync(void *vaddr, size_t size, int direction) | |||
68 | 68 | ||
69 | switch (direction) { | 69 | switch (direction) { |
70 | case DMA_FROM_DEVICE: /* invalidate only */ | 70 | case DMA_FROM_DEVICE: /* invalidate only */ |
71 | dma_cache_inv(p1addr, size); | 71 | __flush_invalidate_region(p1addr, size); |
72 | break; | 72 | break; |
73 | case DMA_TO_DEVICE: /* writeback only */ | 73 | case DMA_TO_DEVICE: /* writeback only */ |
74 | dma_cache_wback(p1addr, size); | 74 | __flush_wback_region(p1addr, size); |
75 | break; | 75 | break; |
76 | case DMA_BIDIRECTIONAL: /* writeback and invalidate */ | 76 | case DMA_BIDIRECTIONAL: /* writeback and invalidate */ |
77 | dma_cache_wback_inv(p1addr, size); | 77 | __flush_purge_region(p1addr, size); |
78 | break; | 78 | break; |
79 | default: | 79 | default: |
80 | BUG(); | 80 | BUG(); |
diff --git a/arch/sh64/mm/consistent.c b/arch/sh64/mm/consistent.c index 8875a2a40da7..c439620402cb 100644 --- a/arch/sh64/mm/consistent.c +++ b/arch/sh64/mm/consistent.c | |||
@@ -11,6 +11,7 @@ | |||
11 | #include <linux/mm.h> | 11 | #include <linux/mm.h> |
12 | #include <linux/string.h> | 12 | #include <linux/string.h> |
13 | #include <linux/pci.h> | 13 | #include <linux/pci.h> |
14 | #include <linux/dma-mapping.h> | ||
14 | #include <linux/module.h> | 15 | #include <linux/module.h> |
15 | #include <asm/io.h> | 16 | #include <asm/io.h> |
16 | 17 | ||
@@ -32,7 +33,7 @@ void *consistent_alloc(struct pci_dev *hwdev, size_t size, | |||
32 | if (vp != NULL) { | 33 | if (vp != NULL) { |
33 | memset(vp, 0, size); | 34 | memset(vp, 0, size); |
34 | *dma_handle = virt_to_phys(ret); | 35 | *dma_handle = virt_to_phys(ret); |
35 | dma_cache_wback_inv((unsigned long)ret, size); | 36 | dma_cache_sync(NULL, ret, size, DMA_BIDIRECTIONAL); |
36 | } | 37 | } |
37 | 38 | ||
38 | return vp; | 39 | return vp; |