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>
此提交包含在:
@@ -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();
|
||||
|
新增問題並參考
封鎖使用者