diff options
author | Christoph Hellwig <hch@lst.de> | 2018-04-18 02:53:46 -0400 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2018-08-02 07:54:06 -0400 |
commit | 47fcae0d2a5fc77123fc14b0db9fe0025a1a829a (patch) | |
tree | 9a268264ff9a50e2d09b1cf43dd8f1887caade61 /drivers/sh | |
parent | b2fcb677d4dd2aac3202365719733452b5512719 (diff) |
sh: introduce a sh_cacheop_vaddr helper
And use it in the maple bus code to avoid a dma API dependency.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Yoshinori Sato <ysato@users.sourceforge.jp>
Diffstat (limited to 'drivers/sh')
-rw-r--r-- | drivers/sh/maple/maple.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/sh/maple/maple.c b/drivers/sh/maple/maple.c index 2e45988d1259..e5d7fb81ad66 100644 --- a/drivers/sh/maple/maple.c +++ b/drivers/sh/maple/maple.c | |||
@@ -300,8 +300,8 @@ static void maple_send(void) | |||
300 | mutex_unlock(&maple_wlist_lock); | 300 | mutex_unlock(&maple_wlist_lock); |
301 | if (maple_packets > 0) { | 301 | if (maple_packets > 0) { |
302 | for (i = 0; i < (1 << MAPLE_DMA_PAGES); i++) | 302 | for (i = 0; i < (1 << MAPLE_DMA_PAGES); i++) |
303 | sh_sync_dma_for_device(maple_sendbuf + i * PAGE_SIZE, | 303 | __flush_purge_region(maple_sendbuf + i * PAGE_SIZE, |
304 | PAGE_SIZE, DMA_BIDIRECTIONAL); | 304 | PAGE_SIZE); |
305 | } | 305 | } |
306 | 306 | ||
307 | finish: | 307 | finish: |
@@ -642,7 +642,8 @@ static void maple_dma_handler(struct work_struct *work) | |||
642 | list_for_each_entry_safe(mq, nmq, &maple_sentq, list) { | 642 | list_for_each_entry_safe(mq, nmq, &maple_sentq, list) { |
643 | mdev = mq->dev; | 643 | mdev = mq->dev; |
644 | recvbuf = mq->recvbuf->buf; | 644 | recvbuf = mq->recvbuf->buf; |
645 | sh_sync_dma_for_device(recvbuf, 0x400, DMA_FROM_DEVICE); | 645 | __flush_invalidate_region(sh_cacheop_vaddr(recvbuf), |
646 | 0x400); | ||
646 | code = recvbuf[0]; | 647 | code = recvbuf[0]; |
647 | kfree(mq->sendbuf); | 648 | kfree(mq->sendbuf); |
648 | list_del_init(&mq->list); | 649 | list_del_init(&mq->list); |