sh: make dma_cache_sync a no-op
sh does not implement DMA_ATTR_NON_CONSISTENT allocations, so it doesn't make any sense to do any work in dma_cache_sync given that it must be a no-op when dma_alloc_attrs returns coherent memory. On the other hand sh uses dma_cache_sync internally in the dma_ops implementation and for the maple bus that does not use the DMA API, so a the old functionality for dma_cache_sync is still provided under the name sh_sync_dma_for_device, and without the redundant dev argument. While at it two of the syncing dma_ops also go the proper _for_device postfix. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Robin Murphy <robin.murphy@arm.com>
This commit is contained in:
@@ -300,7 +300,7 @@ static void maple_send(void)
|
||||
mutex_unlock(&maple_wlist_lock);
|
||||
if (maple_packets > 0) {
|
||||
for (i = 0; i < (1 << MAPLE_DMA_PAGES); i++)
|
||||
dma_cache_sync(0, maple_sendbuf + i * PAGE_SIZE,
|
||||
sh_sync_dma_for_device(maple_sendbuf + i * PAGE_SIZE,
|
||||
PAGE_SIZE, DMA_BIDIRECTIONAL);
|
||||
}
|
||||
|
||||
@@ -642,8 +642,7 @@ static void maple_dma_handler(struct work_struct *work)
|
||||
list_for_each_entry_safe(mq, nmq, &maple_sentq, list) {
|
||||
mdev = mq->dev;
|
||||
recvbuf = mq->recvbuf->buf;
|
||||
dma_cache_sync(&mdev->dev, recvbuf, 0x400,
|
||||
DMA_FROM_DEVICE);
|
||||
sh_sync_dma_for_device(recvbuf, 0x400, DMA_FROM_DEVICE);
|
||||
code = recvbuf[0];
|
||||
kfree(mq->sendbuf);
|
||||
list_del_init(&mq->list);
|
||||
|
||||
Reference in New Issue
Block a user