From 2d71d633cf754e15c5667215c44086080c7c328d Mon Sep 17 00:00:00 2001 From: Terje Bergstrom Date: Wed, 12 Nov 2014 14:22:35 +0200 Subject: gpu: nvgpu: Physical page bits to be per chip Retrieve number of physical page bits based on chip. Bug 1567274 Change-Id: I5a0f6a66be37f2cf720d66b5bdb2b704cd992234 Signed-off-by: Terje Bergstrom Reviewed-on: http://git-master/r/601700 --- drivers/gpu/nvgpu/vgpu/fifo_vgpu.c | 2 +- drivers/gpu/nvgpu/vgpu/mm_vgpu.c | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'drivers/gpu/nvgpu/vgpu') diff --git a/drivers/gpu/nvgpu/vgpu/fifo_vgpu.c b/drivers/gpu/nvgpu/vgpu/fifo_vgpu.c index 80a89e1e..24b9f4be 100644 --- a/drivers/gpu/nvgpu/vgpu/fifo_vgpu.c +++ b/drivers/gpu/nvgpu/vgpu/fifo_vgpu.c @@ -317,7 +317,7 @@ static int vgpu_init_fifo_setup_sw(struct gk20a *g) f->channel[chid].userd_cpu_va = f->userd.cpuva + chid * f->userd_entry_size; f->channel[chid].userd_iova = - NV_MC_SMMU_VADDR_TRANSLATE(f->userd.iova) + gk20a_mm_smmu_vaddr_translate(g, f->userd.iova) + chid * f->userd_entry_size; f->channel[chid].userd_gpu_va = f->userd.gpu_va + chid * f->userd_entry_size; diff --git a/drivers/gpu/nvgpu/vgpu/mm_vgpu.c b/drivers/gpu/nvgpu/vgpu/mm_vgpu.c index 7f1a5856..20f2b5ee 100644 --- a/drivers/gpu/nvgpu/vgpu/mm_vgpu.c +++ b/drivers/gpu/nvgpu/vgpu/mm_vgpu.c @@ -74,7 +74,7 @@ static u64 vgpu_locked_gmmu_map(struct vm_gk20a *vm, struct dma_iommu_mapping *mapping = to_dma_iommu_mapping(d); struct tegra_vgpu_cmd_msg msg; struct tegra_vgpu_as_map_params *p = &msg.params.as_map; - u64 addr = gk20a_mm_iova_addr(sgt->sgl); + u64 addr = gk20a_mm_iova_addr(g, sgt->sgl); u8 prot; gk20a_dbg_fn(""); @@ -210,7 +210,7 @@ u64 vgpu_bar1_map(struct gk20a *g, struct sg_table **sgt, u64 size) struct gk20a_platform *platform = gk20a_get_platform(g->dev); struct dma_iommu_mapping *mapping = to_dma_iommu_mapping(dev_from_gk20a(g)); - u64 addr = gk20a_mm_iova_addr((*sgt)->sgl); + u64 addr = gk20a_mm_iova_addr(g, (*sgt)->sgl); struct tegra_vgpu_cmd_msg msg; struct tegra_vgpu_as_map_params *p = &msg.params.as_map; int err; @@ -429,4 +429,5 @@ void vgpu_init_mm_ops(struct gpu_ops *gops) gops->mm.l2_invalidate = vgpu_mm_l2_invalidate; gops->mm.l2_flush = vgpu_mm_l2_flush; gops->mm.tlb_invalidate = vgpu_mm_tlb_invalidate; + gops->mm.get_physical_addr_bits = gk20a_mm_get_physical_addr_bits; } -- cgit v1.2.2