summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a')
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a.h2
-rw-r--r--drivers/gpu/nvgpu/gk20a/gr_gk20a.c8
-rw-r--r--drivers/gpu/nvgpu/gk20a/gr_gk20a.h4
3 files changed, 7 insertions, 7 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h
index f94be010..aae54cc2 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.h
@@ -375,6 +375,8 @@ struct gpu_ops {
375 u32 global_esr_mask, bool check_errors); 375 u32 global_esr_mask, bool check_errors);
376 void (*suspend_all_sms)(struct gk20a *g, 376 void (*suspend_all_sms)(struct gk20a *g,
377 u32 global_esr_mask, bool check_errors); 377 u32 global_esr_mask, bool check_errors);
378 void (*resume_single_sm)(struct gk20a *g,
379 u32 gpc, u32 tpc, u32 sm);
378 } gr; 380 } gr;
379 struct { 381 struct {
380 void (*init_hw)(struct gk20a *g); 382 void (*init_hw)(struct gk20a *g);
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
index f6857b66..70abef78 100644
--- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
@@ -8088,13 +8088,11 @@ void gk20a_gr_suspend_all_sms(struct gk20a *g,
8088 } 8088 }
8089} 8089}
8090 8090
8091void gk20a_resume_single_sm(struct gk20a *g, 8091void gk20a_gr_resume_single_sm(struct gk20a *g,
8092 u32 gpc, u32 tpc) 8092 u32 gpc, u32 tpc, u32 sm)
8093{ 8093{
8094 u32 dbgr_control0; 8094 u32 dbgr_control0;
8095 u32 offset; 8095 u32 offset;
8096 u32 gpc_stride = nvgpu_get_litter_value(g, GPU_LIT_GPC_STRIDE);
8097 u32 tpc_in_gpc_stride = nvgpu_get_litter_value(g, GPU_LIT_TPC_IN_GPC_STRIDE);
8098 /* 8096 /*
8099 * The following requires some clarification. Despite the fact that both 8097 * The following requires some clarification. Despite the fact that both
8100 * RUN_TRIGGER and STOP_TRIGGER have the word "TRIGGER" in their 8098 * RUN_TRIGGER and STOP_TRIGGER have the word "TRIGGER" in their
@@ -8108,7 +8106,7 @@ void gk20a_resume_single_sm(struct gk20a *g,
8108 * effect, before enabling the run trigger. 8106 * effect, before enabling the run trigger.
8109 */ 8107 */
8110 8108
8111 offset = gpc_stride * gpc + tpc_in_gpc_stride * tpc; 8109 offset = gk20a_gr_gpc_offset(g, gpc) + gk20a_gr_tpc_offset(g, tpc);
8112 8110
8113 /*De-assert stop trigger */ 8111 /*De-assert stop trigger */
8114 dbgr_control0 = 8112 dbgr_control0 =
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.h b/drivers/gpu/nvgpu/gk20a/gr_gk20a.h
index 90abcf22..659b37a6 100644
--- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.h
@@ -612,8 +612,8 @@ void gr_gk20a_load_ctxsw_ucode_boot(struct gk20a *g, u64 addr_base,
612void gr_gk20a_free_tsg_gr_ctx(struct tsg_gk20a *c); 612void gr_gk20a_free_tsg_gr_ctx(struct tsg_gk20a *c);
613int gr_gk20a_disable_ctxsw(struct gk20a *g); 613int gr_gk20a_disable_ctxsw(struct gk20a *g);
614int gr_gk20a_enable_ctxsw(struct gk20a *g); 614int gr_gk20a_enable_ctxsw(struct gk20a *g);
615void gk20a_resume_single_sm(struct gk20a *g, 615void gk20a_gr_resume_single_sm(struct gk20a *g,
616 u32 gpc, u32 tpc); 616 u32 gpc, u32 tpc, u32 sm);
617void gk20a_resume_all_sms(struct gk20a *g); 617void gk20a_resume_all_sms(struct gk20a *g);
618void gk20a_gr_suspend_single_sm(struct gk20a *g, 618void gk20a_gr_suspend_single_sm(struct gk20a *g,
619 u32 gpc, u32 tpc, u32 sm, 619 u32 gpc, u32 tpc, u32 sm,