From 7d8e2193893454bc8e05543c956fab32b8eed54b Mon Sep 17 00:00:00 2001 From: Terje Bergstrom Date: Thu, 31 Mar 2016 11:13:42 -0700 Subject: gpu: nvgpu: Use sysmem aperture for SoC memory In Tegra GPU, SoC memory has to be accessed as vidmem. In discrete GPU, it has to be accessed as sysmem. Change-Id: I4efe71b54a9a32f0bf1f02ec4016ed74405a14c5 Signed-off-by: Terje Bergstrom Reviewed-on: http://git-master/r/1120468 --- drivers/gpu/nvgpu/gk20a/channel_gk20a.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'drivers/gpu/nvgpu/gk20a/channel_gk20a.c') diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c index e8d82e0e..b7bccd07 100644 --- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c @@ -130,6 +130,7 @@ static int channel_gk20a_commit_userd(struct channel_gk20a *c) u32 addr_lo; u32 addr_hi; void *inst_ptr; + struct gk20a *g = c->g; gk20a_dbg_fn(""); @@ -144,12 +145,13 @@ static int channel_gk20a_commit_userd(struct channel_gk20a *c) c->hw_chid, (u64)c->userd_iova); gk20a_mem_wr32(inst_ptr, ram_in_ramfc_w() + ram_fc_userd_w(), - pbdma_userd_target_vid_mem_f() | - pbdma_userd_addr_f(addr_lo)); + (g->mm.vidmem_is_vidmem ? + pbdma_userd_target_sys_mem_ncoh_f() : + pbdma_userd_target_vid_mem_f()) | + pbdma_userd_addr_f(addr_lo)); gk20a_mem_wr32(inst_ptr, ram_in_ramfc_w() + ram_fc_userd_hi_w(), - pbdma_userd_target_vid_mem_f() | - pbdma_userd_hi_addr_f(addr_hi)); + pbdma_userd_hi_addr_f(addr_hi)); return 0; } @@ -354,7 +356,9 @@ static void channel_gk20a_bind(struct channel_gk20a *c) gk20a_writel(g, ccsr_channel_inst_r(c->hw_chid), ccsr_channel_inst_ptr_f(inst_ptr) | - ccsr_channel_inst_target_vid_mem_f() | + (g->mm.vidmem_is_vidmem ? + ccsr_channel_inst_target_sys_mem_ncoh_f() : + ccsr_channel_inst_target_vid_mem_f()) | ccsr_channel_inst_bind_true_f()); gk20a_writel(g, ccsr_channel_r(c->hw_chid), -- cgit v1.2.2