From 6e97491b007d4231e1934896a423027fda61c4c2 Mon Sep 17 00:00:00 2001 From: Terje Bergstrom Date: Mon, 21 Sep 2015 17:38:13 -0700 Subject: gpu: nvgpu: Write patch_count after updating ctxsw Bug 1686189 Change-Id: Idf92d3277a7e8932d11ece13e3b988609e49c74e Signed-off-by: Terje Bergstrom Reviewed-on: http://git-master/r/802550 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-on: http://git-master/r/806180 --- drivers/gpu/nvgpu/gk20a/gr_gk20a.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'drivers/gpu') diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c index 672ea521..18f00c63 100644 --- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c @@ -1641,16 +1641,6 @@ int gr_gk20a_load_golden_ctx_image(struct gk20a *g, gk20a_mem_wr32(ctx_ptr + ctxsw_prog_main_image_num_save_ops_o(), 0, 0); gk20a_mem_wr32(ctx_ptr + ctxsw_prog_main_image_num_restore_ops_o(), 0, 0); - virt_addr_lo = u64_lo32(ch_ctx->patch_ctx.mem.gpu_va); - virt_addr_hi = u64_hi32(ch_ctx->patch_ctx.mem.gpu_va); - - gk20a_mem_wr32(ctx_ptr + ctxsw_prog_main_image_patch_count_o(), 0, - ch_ctx->patch_ctx.data_count); - gk20a_mem_wr32(ctx_ptr + ctxsw_prog_main_image_patch_adr_lo_o(), 0, - virt_addr_lo); - gk20a_mem_wr32(ctx_ptr + ctxsw_prog_main_image_patch_adr_hi_o(), 0, - virt_addr_hi); - /* no user for client managed performance counter ctx */ data = gk20a_mem_rd32(ctx_ptr + ctxsw_prog_main_image_pm_o(), 0); data = data & ~ctxsw_prog_main_image_pm_mode_m(); @@ -1686,6 +1676,16 @@ int gr_gk20a_load_golden_ctx_image(struct gk20a *g, if (g->ops.gr.update_ctxsw_preemption_mode) g->ops.gr.update_ctxsw_preemption_mode(g, ch_ctx, ctx_ptr); + virt_addr_lo = u64_lo32(ch_ctx->patch_ctx.mem.gpu_va); + virt_addr_hi = u64_hi32(ch_ctx->patch_ctx.mem.gpu_va); + + gk20a_mem_wr32(ctx_ptr + ctxsw_prog_main_image_patch_count_o(), 0, + ch_ctx->patch_ctx.data_count); + gk20a_mem_wr32(ctx_ptr + ctxsw_prog_main_image_patch_adr_lo_o(), 0, + virt_addr_lo); + gk20a_mem_wr32(ctx_ptr + ctxsw_prog_main_image_patch_adr_hi_o(), 0, + virt_addr_hi); + vunmap(ctx_ptr); if (tegra_platform_is_linsim()) { -- cgit v1.2.2