From 4cb6f6b357963b2eab6a0d02974a6f64c874bd89 Mon Sep 17 00:00:00 2001 From: Arto Merilainen Date: Mon, 21 Jul 2014 10:19:27 +0300 Subject: gpu: nvgpu: Add helpers for backing store access This patch adds mm helpers to access compression backing store from in-kernel shader. Bug 1409151 Change-Id: Icb4f6dc0b5a35fdb97bc4221ab3657866f775fae Signed-off-by: Arto Merilainen Reviewed-on: http://git-master/r/440263 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Lauri Peltonen GVS: Gerrit_Virtual_Submit --- drivers/gpu/nvgpu/gk20a/mm_gk20a.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) (limited to 'drivers/gpu/nvgpu/gk20a/mm_gk20a.c') diff --git a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c index e580732a..e7a97207 100644 --- a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c @@ -111,11 +111,6 @@ static const u64 gmmu_page_offset_masks[gmmu_nr_page_sizes] = { 0xfffLL, 0x1ffffLL }; static const u64 gmmu_page_masks[gmmu_nr_page_sizes] = { ~0xfffLL, ~0x1ffffLL }; -struct gk20a_comptags { - u32 offset; - u32 lines; -}; - struct gk20a_dmabuf_priv { struct mutex lock; @@ -197,10 +192,8 @@ void gk20a_mm_unpin(struct device *dev, struct dma_buf *dmabuf, mutex_unlock(&priv->lock); } - -static void gk20a_get_comptags(struct device *dev, - struct dma_buf *dmabuf, - struct gk20a_comptags *comptags) +void gk20a_get_comptags(struct device *dev, struct dma_buf *dmabuf, + struct gk20a_comptags *comptags) { struct gk20a_dmabuf_priv *priv = dma_buf_get_drvdata(dmabuf, dev); @@ -1539,6 +1532,20 @@ u64 gk20a_gmmu_map(struct vm_gk20a *vm, return vaddr; } +dma_addr_t gk20a_mm_gpuva_to_iova(struct vm_gk20a *vm, u64 gpu_vaddr) +{ + struct mapped_buffer_node *buffer; + dma_addr_t addr = 0; + + mutex_lock(&vm->update_gmmu_lock); + buffer = find_mapped_buffer_locked(&vm->mapped_buffers, gpu_vaddr); + if (buffer) + addr = gk20a_mm_iova_addr(buffer->sgt->sgl); + mutex_unlock(&vm->update_gmmu_lock); + + return addr; +} + void gk20a_gmmu_unmap(struct vm_gk20a *vm, u64 vaddr, u64 size, -- cgit v1.2.2