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.h1
-rw-r--r--drivers/gpu/nvgpu/gk20a/gr_gk20a.c45
-rw-r--r--drivers/gpu/nvgpu/gk20a/gr_gk20a.h1
3 files changed, 0 insertions, 47 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h
index f802cd56..1fe0cb5d 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.h
@@ -437,7 +437,6 @@ struct gpu_ops {
437 void (*set_preemption_buffer_va)(struct gk20a *g, 437 void (*set_preemption_buffer_va)(struct gk20a *g,
438 struct nvgpu_mem *mem, u64 gpu_va); 438 struct nvgpu_mem *mem, u64 gpu_va);
439 void (*load_tpc_mask)(struct gk20a *g); 439 void (*load_tpc_mask)(struct gk20a *g);
440 int (*inval_icache)(struct gk20a *g, struct channel_gk20a *ch);
441 int (*trigger_suspend)(struct gk20a *g); 440 int (*trigger_suspend)(struct gk20a *g);
442 int (*wait_for_pause)(struct gk20a *g, struct nvgpu_warpstate *w_state); 441 int (*wait_for_pause)(struct gk20a *g, struct nvgpu_warpstate *w_state);
443 int (*resume_from_pause)(struct gk20a *g); 442 int (*resume_from_pause)(struct gk20a *g);
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
index fbba02ca..90643971 100644
--- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
@@ -8549,51 +8549,6 @@ clean_up:
8549 return err; 8549 return err;
8550} 8550}
8551 8551
8552int gr_gk20a_inval_icache(struct gk20a *g, struct channel_gk20a *ch)
8553{
8554 int err = 0;
8555 u32 cache_ctrl, regval;
8556 struct nvgpu_dbg_reg_op ops;
8557
8558 ops.op = REGOP(READ_32);
8559 ops.type = REGOP(TYPE_GR_CTX);
8560 ops.status = REGOP(STATUS_SUCCESS);
8561 ops.value_hi = 0;
8562 ops.and_n_mask_lo = 0;
8563 ops.and_n_mask_hi = 0;
8564 ops.offset = gr_pri_gpc0_gcc_dbg_r();
8565
8566 err = gr_gk20a_exec_ctx_ops(ch, &ops, 1, 0, 1);
8567 if (err) {
8568 nvgpu_err(g, "Failed to read register");
8569 return err;
8570 }
8571
8572 regval = ops.value_lo;
8573
8574 ops.op = REGOP(WRITE_32);
8575 ops.value_lo = set_field(regval, gr_pri_gpcs_gcc_dbg_invalidate_m(), 1);
8576 err = gr_gk20a_exec_ctx_ops(ch, &ops, 1, 1, 0);
8577 if (err) {
8578 nvgpu_err(g, "Failed to write register");
8579 return err;
8580 }
8581
8582 ops.op = REGOP(READ_32);
8583 ops.offset = gr_pri_gpc0_tpc0_sm_cache_control_r();
8584 err = gr_gk20a_exec_ctx_ops(ch, &ops, 1, 0, 1);
8585 if (err) {
8586 nvgpu_err(g, "Failed to read register");
8587 return err;
8588 }
8589
8590 cache_ctrl = gk20a_readl(g, gr_pri_gpc0_tpc0_sm_cache_control_r());
8591 cache_ctrl = set_field(cache_ctrl, gr_pri_gpcs_tpcs_sm_cache_control_invalidate_cache_m(), 1);
8592 gk20a_writel(g, gr_pri_gpc0_tpc0_sm_cache_control_r(), cache_ctrl);
8593
8594 return 0;
8595}
8596
8597int gr_gk20a_trigger_suspend(struct gk20a *g) 8552int gr_gk20a_trigger_suspend(struct gk20a *g)
8598{ 8553{
8599 int err = 0; 8554 int err = 0;
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.h b/drivers/gpu/nvgpu/gk20a/gr_gk20a.h
index 9c9a3caa..a60f6f12 100644
--- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.h
@@ -775,7 +775,6 @@ int gr_gk20a_resume_contexts(struct gk20a *g,
775 int *ctx_resident_ch_fd); 775 int *ctx_resident_ch_fd);
776void gk20a_gr_enable_gpc_exceptions(struct gk20a *g); 776void gk20a_gr_enable_gpc_exceptions(struct gk20a *g);
777void gk20a_gr_enable_exceptions(struct gk20a *g); 777void gk20a_gr_enable_exceptions(struct gk20a *g);
778int gr_gk20a_inval_icache(struct gk20a *g, struct channel_gk20a *ch);
779int gr_gk20a_trigger_suspend(struct gk20a *g); 778int gr_gk20a_trigger_suspend(struct gk20a *g);
780int gr_gk20a_wait_for_pause(struct gk20a *g, struct nvgpu_warpstate *w_state); 779int gr_gk20a_wait_for_pause(struct gk20a *g, struct nvgpu_warpstate *w_state);
781int gr_gk20a_resume_from_pause(struct gk20a *g); 780int gr_gk20a_resume_from_pause(struct gk20a *g);