summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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
-rw-r--r--drivers/gpu/nvgpu/gm20b/hal_gm20b.c1
-rw-r--r--drivers/gpu/nvgpu/gp106/hal_gp106.c1
-rw-r--r--drivers/gpu/nvgpu/gp10b/hal_gp10b.c1
-rw-r--r--drivers/gpu/nvgpu/gv100/hal_gv100.c1
-rw-r--r--drivers/gpu/nvgpu/gv11b/hal_gv11b.c1
-rw-r--r--drivers/gpu/nvgpu/os/linux/ioctl_ctrl.c25
-rw-r--r--drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c1
-rw-r--r--drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c1
-rw-r--r--include/uapi/linux/nvgpu.h7
12 files changed, 0 insertions, 86 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);
diff --git a/drivers/gpu/nvgpu/gm20b/hal_gm20b.c b/drivers/gpu/nvgpu/gm20b/hal_gm20b.c
index 3b164f9c..838f0f1b 100644
--- a/drivers/gpu/nvgpu/gm20b/hal_gm20b.c
+++ b/drivers/gpu/nvgpu/gm20b/hal_gm20b.c
@@ -292,7 +292,6 @@ static const struct gpu_ops gm20b_ops = {
292 .write_zcull_ptr = gr_gk20a_write_zcull_ptr, 292 .write_zcull_ptr = gr_gk20a_write_zcull_ptr,
293 .write_pm_ptr = gr_gk20a_write_pm_ptr, 293 .write_pm_ptr = gr_gk20a_write_pm_ptr,
294 .load_tpc_mask = gr_gm20b_load_tpc_mask, 294 .load_tpc_mask = gr_gm20b_load_tpc_mask,
295 .inval_icache = gr_gk20a_inval_icache,
296 .trigger_suspend = gr_gk20a_trigger_suspend, 295 .trigger_suspend = gr_gk20a_trigger_suspend,
297 .wait_for_pause = gr_gk20a_wait_for_pause, 296 .wait_for_pause = gr_gk20a_wait_for_pause,
298 .resume_from_pause = gr_gk20a_resume_from_pause, 297 .resume_from_pause = gr_gk20a_resume_from_pause,
diff --git a/drivers/gpu/nvgpu/gp106/hal_gp106.c b/drivers/gpu/nvgpu/gp106/hal_gp106.c
index 1c5e1800..52fcc9d3 100644
--- a/drivers/gpu/nvgpu/gp106/hal_gp106.c
+++ b/drivers/gpu/nvgpu/gp106/hal_gp106.c
@@ -352,7 +352,6 @@ static const struct gpu_ops gp106_ops = {
352 .write_zcull_ptr = gr_gk20a_write_zcull_ptr, 352 .write_zcull_ptr = gr_gk20a_write_zcull_ptr,
353 .write_pm_ptr = gr_gk20a_write_pm_ptr, 353 .write_pm_ptr = gr_gk20a_write_pm_ptr,
354 .load_tpc_mask = gr_gm20b_load_tpc_mask, 354 .load_tpc_mask = gr_gm20b_load_tpc_mask,
355 .inval_icache = gr_gk20a_inval_icache,
356 .trigger_suspend = gr_gk20a_trigger_suspend, 355 .trigger_suspend = gr_gk20a_trigger_suspend,
357 .wait_for_pause = gr_gk20a_wait_for_pause, 356 .wait_for_pause = gr_gk20a_wait_for_pause,
358 .resume_from_pause = gr_gk20a_resume_from_pause, 357 .resume_from_pause = gr_gk20a_resume_from_pause,
diff --git a/drivers/gpu/nvgpu/gp10b/hal_gp10b.c b/drivers/gpu/nvgpu/gp10b/hal_gp10b.c
index b9d8c81a..7df17ed7 100644
--- a/drivers/gpu/nvgpu/gp10b/hal_gp10b.c
+++ b/drivers/gpu/nvgpu/gp10b/hal_gp10b.c
@@ -311,7 +311,6 @@ static const struct gpu_ops gp10b_ops = {
311 .write_zcull_ptr = gr_gk20a_write_zcull_ptr, 311 .write_zcull_ptr = gr_gk20a_write_zcull_ptr,
312 .write_pm_ptr = gr_gk20a_write_pm_ptr, 312 .write_pm_ptr = gr_gk20a_write_pm_ptr,
313 .load_tpc_mask = gr_gm20b_load_tpc_mask, 313 .load_tpc_mask = gr_gm20b_load_tpc_mask,
314 .inval_icache = gr_gk20a_inval_icache,
315 .trigger_suspend = gr_gk20a_trigger_suspend, 314 .trigger_suspend = gr_gk20a_trigger_suspend,
316 .wait_for_pause = gr_gk20a_wait_for_pause, 315 .wait_for_pause = gr_gk20a_wait_for_pause,
317 .resume_from_pause = gr_gk20a_resume_from_pause, 316 .resume_from_pause = gr_gk20a_resume_from_pause,
diff --git a/drivers/gpu/nvgpu/gv100/hal_gv100.c b/drivers/gpu/nvgpu/gv100/hal_gv100.c
index 6904313b..8565d5fc 100644
--- a/drivers/gpu/nvgpu/gv100/hal_gv100.c
+++ b/drivers/gpu/nvgpu/gv100/hal_gv100.c
@@ -389,7 +389,6 @@ static const struct gpu_ops gv100_ops = {
389 .write_zcull_ptr = gr_gv11b_write_zcull_ptr, 389 .write_zcull_ptr = gr_gv11b_write_zcull_ptr,
390 .write_pm_ptr = gr_gv11b_write_pm_ptr, 390 .write_pm_ptr = gr_gv11b_write_pm_ptr,
391 .load_tpc_mask = gr_gv11b_load_tpc_mask, 391 .load_tpc_mask = gr_gv11b_load_tpc_mask,
392 .inval_icache = gr_gk20a_inval_icache,
393 .trigger_suspend = gv11b_gr_sm_trigger_suspend, 392 .trigger_suspend = gv11b_gr_sm_trigger_suspend,
394 .wait_for_pause = gr_gk20a_wait_for_pause, 393 .wait_for_pause = gr_gk20a_wait_for_pause,
395 .resume_from_pause = gv11b_gr_resume_from_pause, 394 .resume_from_pause = gv11b_gr_resume_from_pause,
diff --git a/drivers/gpu/nvgpu/gv11b/hal_gv11b.c b/drivers/gpu/nvgpu/gv11b/hal_gv11b.c
index 3772649e..baafa801 100644
--- a/drivers/gpu/nvgpu/gv11b/hal_gv11b.c
+++ b/drivers/gpu/nvgpu/gv11b/hal_gv11b.c
@@ -344,7 +344,6 @@ static const struct gpu_ops gv11b_ops = {
344 .write_zcull_ptr = gr_gv11b_write_zcull_ptr, 344 .write_zcull_ptr = gr_gv11b_write_zcull_ptr,
345 .write_pm_ptr = gr_gv11b_write_pm_ptr, 345 .write_pm_ptr = gr_gv11b_write_pm_ptr,
346 .load_tpc_mask = gr_gv11b_load_tpc_mask, 346 .load_tpc_mask = gr_gv11b_load_tpc_mask,
347 .inval_icache = gr_gk20a_inval_icache,
348 .trigger_suspend = gv11b_gr_sm_trigger_suspend, 347 .trigger_suspend = gv11b_gr_sm_trigger_suspend,
349 .wait_for_pause = gr_gk20a_wait_for_pause, 348 .wait_for_pause = gr_gk20a_wait_for_pause,
350 .resume_from_pause = gv11b_gr_resume_from_pause, 349 .resume_from_pause = gv11b_gr_resume_from_pause,
diff --git a/drivers/gpu/nvgpu/os/linux/ioctl_ctrl.c b/drivers/gpu/nvgpu/os/linux/ioctl_ctrl.c
index 8130b7d0..fc1f7011 100644
--- a/drivers/gpu/nvgpu/os/linux/ioctl_ctrl.c
+++ b/drivers/gpu/nvgpu/os/linux/ioctl_ctrl.c
@@ -578,27 +578,6 @@ static int nvgpu_gpu_ioctl_l2_fb_ops(struct gk20a *g,
578 return err; 578 return err;
579} 579}
580 580
581/* Invalidate i-cache for kepler & maxwell */
582static int nvgpu_gpu_ioctl_inval_icache(
583 struct gk20a *g,
584 struct nvgpu_gpu_inval_icache_args *args)
585{
586 struct channel_gk20a *ch;
587 int err;
588
589 ch = gk20a_get_channel_from_file(args->channel_fd);
590 if (!ch)
591 return -EINVAL;
592
593 /* Take the global lock, since we'll be doing global regops */
594 nvgpu_mutex_acquire(&g->dbg_sessions_lock);
595 err = g->ops.gr.inval_icache(g, ch);
596 nvgpu_mutex_release(&g->dbg_sessions_lock);
597
598 gk20a_channel_put(ch);
599 return err;
600}
601
602static int nvgpu_gpu_ioctl_set_mmu_debug_mode( 581static int nvgpu_gpu_ioctl_set_mmu_debug_mode(
603 struct gk20a *g, 582 struct gk20a *g,
604 struct nvgpu_gpu_mmu_debug_mode_args *args) 583 struct nvgpu_gpu_mmu_debug_mode_args *args)
@@ -1824,10 +1803,6 @@ long gk20a_ctrl_dev_ioctl(struct file *filp, unsigned int cmd, unsigned long arg
1824 err = nvgpu_gpu_ioctl_l2_fb_ops(g, 1803 err = nvgpu_gpu_ioctl_l2_fb_ops(g,
1825 (struct nvgpu_gpu_l2_fb_args *)buf); 1804 (struct nvgpu_gpu_l2_fb_args *)buf);
1826 break; 1805 break;
1827 case NVGPU_GPU_IOCTL_INVAL_ICACHE:
1828 err = gr_gk20a_elpg_protected_call(g,
1829 nvgpu_gpu_ioctl_inval_icache(g, (struct nvgpu_gpu_inval_icache_args *)buf));
1830 break;
1831 1806
1832 case NVGPU_GPU_IOCTL_SET_MMUDEBUG_MODE: 1807 case NVGPU_GPU_IOCTL_SET_MMUDEBUG_MODE:
1833 err = nvgpu_gpu_ioctl_set_mmu_debug_mode(g, 1808 err = nvgpu_gpu_ioctl_set_mmu_debug_mode(g,
diff --git a/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c b/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c
index a4ad64a8..b046ba6c 100644
--- a/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c
+++ b/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c
@@ -185,7 +185,6 @@ static const struct gpu_ops vgpu_gp10b_ops = {
185 .write_zcull_ptr = gr_gk20a_write_zcull_ptr, 185 .write_zcull_ptr = gr_gk20a_write_zcull_ptr,
186 .write_pm_ptr = gr_gk20a_write_pm_ptr, 186 .write_pm_ptr = gr_gk20a_write_pm_ptr,
187 .load_tpc_mask = gr_gm20b_load_tpc_mask, 187 .load_tpc_mask = gr_gm20b_load_tpc_mask,
188 .inval_icache = gr_gk20a_inval_icache,
189 .trigger_suspend = gr_gk20a_trigger_suspend, 188 .trigger_suspend = gr_gk20a_trigger_suspend,
190 .wait_for_pause = gr_gk20a_wait_for_pause, 189 .wait_for_pause = gr_gk20a_wait_for_pause,
191 .resume_from_pause = gr_gk20a_resume_from_pause, 190 .resume_from_pause = gr_gk20a_resume_from_pause,
diff --git a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c b/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c
index a02c47f2..f9d09ebd 100644
--- a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c
+++ b/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c
@@ -203,7 +203,6 @@ static const struct gpu_ops vgpu_gv11b_ops = {
203 .write_zcull_ptr = gr_gv11b_write_zcull_ptr, 203 .write_zcull_ptr = gr_gv11b_write_zcull_ptr,
204 .write_pm_ptr = gr_gv11b_write_pm_ptr, 204 .write_pm_ptr = gr_gv11b_write_pm_ptr,
205 .load_tpc_mask = gr_gv11b_load_tpc_mask, 205 .load_tpc_mask = gr_gv11b_load_tpc_mask,
206 .inval_icache = gr_gk20a_inval_icache,
207 .trigger_suspend = gv11b_gr_sm_trigger_suspend, 206 .trigger_suspend = gv11b_gr_sm_trigger_suspend,
208 .wait_for_pause = gr_gk20a_wait_for_pause, 207 .wait_for_pause = gr_gk20a_wait_for_pause,
209 .resume_from_pause = gv11b_gr_resume_from_pause, 208 .resume_from_pause = gv11b_gr_resume_from_pause,
diff --git a/include/uapi/linux/nvgpu.h b/include/uapi/linux/nvgpu.h
index 0733a7b2..8d884872 100644
--- a/include/uapi/linux/nvgpu.h
+++ b/include/uapi/linux/nvgpu.h
@@ -404,11 +404,6 @@ struct nvgpu_gpu_l2_fb_args {
404 __u32 reserved; 404 __u32 reserved;
405} __packed; 405} __packed;
406 406
407struct nvgpu_gpu_inval_icache_args {
408 int channel_fd;
409 __u32 reserved;
410} __packed;
411
412struct nvgpu_gpu_mmu_debug_mode_args { 407struct nvgpu_gpu_mmu_debug_mode_args {
413 __u32 state; 408 __u32 state;
414 __u32 reserved; 409 __u32 reserved;
@@ -922,8 +917,6 @@ struct nvgpu_gpu_read_single_sm_error_state_args {
922 _IOWR(NVGPU_GPU_IOCTL_MAGIC, 11, struct nvgpu_gpu_open_channel_args) 917 _IOWR(NVGPU_GPU_IOCTL_MAGIC, 11, struct nvgpu_gpu_open_channel_args)
923#define NVGPU_GPU_IOCTL_FLUSH_L2 \ 918#define NVGPU_GPU_IOCTL_FLUSH_L2 \
924 _IOWR(NVGPU_GPU_IOCTL_MAGIC, 12, struct nvgpu_gpu_l2_fb_args) 919 _IOWR(NVGPU_GPU_IOCTL_MAGIC, 12, struct nvgpu_gpu_l2_fb_args)
925#define NVGPU_GPU_IOCTL_INVAL_ICACHE \
926 _IOWR(NVGPU_GPU_IOCTL_MAGIC, 13, struct nvgpu_gpu_inval_icache_args)
927#define NVGPU_GPU_IOCTL_SET_MMUDEBUG_MODE \ 920#define NVGPU_GPU_IOCTL_SET_MMUDEBUG_MODE \
928 _IOWR(NVGPU_GPU_IOCTL_MAGIC, 14, struct nvgpu_gpu_mmu_debug_mode_args) 921 _IOWR(NVGPU_GPU_IOCTL_MAGIC, 14, struct nvgpu_gpu_mmu_debug_mode_args)
929#define NVGPU_GPU_IOCTL_SET_SM_DEBUG_MODE \ 922#define NVGPU_GPU_IOCTL_SET_SM_DEBUG_MODE \