aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2007-10-17 02:29:42 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-10-17 11:42:57 -0400
commit622a9edd919de98ef59571ae6c40c7458244e3f2 (patch)
treec25684f90ed52c459c39d97d6ab641fe3bb6b09d /arch
parentbc154b1efb7f8430ea9faabd5953ebc411f8ead5 (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.c6
-rw-r--r--arch/mips/mm/cache.c2
-rw-r--r--arch/sh/drivers/pci/dma-dreamcast.c2
-rw-r--r--arch/sh/mm/consistent.c8
-rw-r--r--arch/sh64/mm/consistent.c3
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);
47void (*_dma_cache_inv)(unsigned long start, unsigned long size); 47void (*_dma_cache_inv)(unsigned long start, unsigned long size);
48 48
49EXPORT_SYMBOL(_dma_cache_wback_inv); 49EXPORT_SYMBOL(_dma_cache_wback_inv);
50EXPORT_SYMBOL(_dma_cache_wback);
51EXPORT_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;