Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 622a9edd authored by Ralf Baechle's avatar Ralf Baechle Committed by Linus Torvalds
Browse files

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: default avatarRalf Baechle <ralf@linux-mips.org>
Acked-by: default avatarPaul Mundt <lethal@linux-sh.org>
Acked-by: default avatarPaul Mackerras <paulus@samba.org>
Acked-by: default avatarDavid S. Miller <davem@davemloft.net>
Acked-by: default avatarKyle McMartin <kyle@parisc-linux.org>
Acked-by: default avatarHaavard Skinnemoen <hskinnemoen@atmel.com>
Cc: <linux-arch@vger.kernel.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent bc154b1e
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -21,13 +21,13 @@ void dma_cache_sync(struct device *dev, void *vaddr, size_t size, int direction)

	switch (direction) {
	case DMA_FROM_DEVICE:		/* invalidate only */
		dma_cache_inv(vaddr, size);
		invalidate_dcache_region(vaddr, size);
		break;
	case DMA_TO_DEVICE:		/* writeback only */
		dma_cache_wback(vaddr, size);
		clean_dcache_region(vaddr, size);
		break;
	case DMA_BIDIRECTIONAL:		/* writeback and invalidate */
		dma_cache_wback_inv(vaddr, size);
		flush_dcache_region(vaddr, size);
		break;
	default:
		BUG();
+0 −2
Original line number Diff line number Diff line
@@ -47,8 +47,6 @@ void (*_dma_cache_wback)(unsigned long start, unsigned long size);
void (*_dma_cache_inv)(unsigned long start, unsigned long size);

EXPORT_SYMBOL(_dma_cache_wback_inv);
EXPORT_SYMBOL(_dma_cache_wback);
EXPORT_SYMBOL(_dma_cache_inv);

#endif /* CONFIG_DMA_NONCOHERENT */

+1 −1
Original line number Diff line number Diff line
@@ -51,7 +51,7 @@ void *dreamcast_consistent_alloc(struct device *dev, size_t size,
	buf = P2SEGADDR(buf);

	/* Flush the dcache before we hand off the buffer */
	dma_cache_wback_inv((void *)buf, size);
	__flush_purge_region((void *)buf, size);

	return (void *)buf;
}
+4 −4
Original line number Diff line number Diff line
@@ -34,7 +34,7 @@ void *consistent_alloc(gfp_t gfp, size_t size, dma_addr_t *handle)
	/*
	 * We must flush the cache before we pass it on to the device
	 */
	dma_cache_wback_inv(ret, size);
	__flush_purge_region(ret, size);

	page = virt_to_page(ret);
	free = page + (size >> PAGE_SHIFT);
@@ -68,13 +68,13 @@ void consistent_sync(void *vaddr, size_t size, int direction)

	switch (direction) {
	case DMA_FROM_DEVICE:		/* invalidate only */
		dma_cache_inv(p1addr, size);
		__flush_invalidate_region(p1addr, size);
		break;
	case DMA_TO_DEVICE:		/* writeback only */
		dma_cache_wback(p1addr, size);
		__flush_wback_region(p1addr, size);
		break;
	case DMA_BIDIRECTIONAL:		/* writeback and invalidate */
		dma_cache_wback_inv(p1addr, size);
		__flush_purge_region(p1addr, size);
		break;
	default:
		BUG();
+2 −1
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@
#include <linux/mm.h>
#include <linux/string.h>
#include <linux/pci.h>
#include <linux/dma-mapping.h>
#include <linux/module.h>
#include <asm/io.h>

@@ -32,7 +33,7 @@ void *consistent_alloc(struct pci_dev *hwdev, size_t size,
	if (vp != NULL) {
		memset(vp, 0, size);
		*dma_handle = virt_to_phys(ret);
		dma_cache_wback_inv((unsigned long)ret, size);
		dma_cache_sync(NULL, ret, size, DMA_BIDIRECTIONAL);
	}

	return vp;
Loading