diff options
Diffstat (limited to 'drivers/video/tegra/host/t20/channel_t20.c')
-rw-r--r-- | drivers/video/tegra/host/t20/channel_t20.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/drivers/video/tegra/host/t20/channel_t20.c b/drivers/video/tegra/host/t20/channel_t20.c index a3fb15212820..fdbf6ba7355d 100644 --- a/drivers/video/tegra/host/t20/channel_t20.c +++ b/drivers/video/tegra/host/t20/channel_t20.c @@ -232,7 +232,8 @@ static int t20_channel_submit(struct nvhost_channel *channel, /* gather restore buffer */ if (need_restore) - nvhost_cdma_push(&channel->cdma, + nvhost_cdma_push_gather(&channel->cdma, + nvmap_ref_to_handle(channel->cur_ctx->restore), nvhost_opcode_gather(channel->cur_ctx->restore_size), channel->cur_ctx->restore_phys); @@ -269,10 +270,13 @@ static int t20_channel_submit(struct nvhost_channel *channel, } else { /* push user gathers */ - for ( ; gather != gather_end; gather += 2) - nvhost_cdma_push(&channel->cdma, - nvhost_opcode_gather(gather[0]), - gather[1]); + int i = 0; + for ( ; i < gather_end-gather; i += 2) { + nvhost_cdma_push_gather(&channel->cdma, + unpins[i/2], + nvhost_opcode_gather(gather[i]), + gather[i+1]); + } } /* end CDMA submit & stash pinned hMems into sync queue */ |