diff options
Diffstat (limited to 'drivers/gpu/nvgpu')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a.h | 1 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gr_gk20a.c | 3 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gp106/hal_gp106.c | 1 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gp10b/gr_gp10b.c | 7 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gp10b/gr_gp10b.h | 1 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gp10b/hal_gp10b.c | 1 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c | 1 |
7 files changed, 13 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h index 9c09e85f..4f3b34b8 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/gk20a.h | |||
@@ -414,6 +414,7 @@ struct gpu_ops { | |||
414 | u32 (*tpc_enabled_exceptions)(struct gk20a *g); | 414 | u32 (*tpc_enabled_exceptions)(struct gk20a *g); |
415 | int (*set_czf_bypass)(struct gk20a *g, | 415 | int (*set_czf_bypass)(struct gk20a *g, |
416 | struct channel_gk20a *ch); | 416 | struct channel_gk20a *ch); |
417 | void (*init_czf_bypass)(struct gk20a *g); | ||
417 | bool (*sm_debugger_attached)(struct gk20a *g); | 418 | bool (*sm_debugger_attached)(struct gk20a *g); |
418 | void (*suspend_single_sm)(struct gk20a *g, | 419 | void (*suspend_single_sm)(struct gk20a *g, |
419 | u32 gpc, u32 tpc, u32 sm, | 420 | u32 gpc, u32 tpc, u32 sm, |
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c index 6d370250..5910c7d9 100644 --- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c | |||
@@ -4838,6 +4838,9 @@ static int gk20a_init_gr_setup_sw(struct gk20a *g) | |||
4838 | 4838 | ||
4839 | gr_gk20a_load_zbc_default_table(g, gr); | 4839 | gr_gk20a_load_zbc_default_table(g, gr); |
4840 | 4840 | ||
4841 | if (g->ops.gr.init_czf_bypass) | ||
4842 | g->ops.gr.init_czf_bypass(g); | ||
4843 | |||
4841 | nvgpu_mutex_init(&gr->ctx_mutex); | 4844 | nvgpu_mutex_init(&gr->ctx_mutex); |
4842 | nvgpu_spinlock_init(&gr->ch_tlb_lock); | 4845 | nvgpu_spinlock_init(&gr->ch_tlb_lock); |
4843 | 4846 | ||
diff --git a/drivers/gpu/nvgpu/gp106/hal_gp106.c b/drivers/gpu/nvgpu/gp106/hal_gp106.c index 59f72e13..b6f5a4cd 100644 --- a/drivers/gpu/nvgpu/gp106/hal_gp106.c +++ b/drivers/gpu/nvgpu/gp106/hal_gp106.c | |||
@@ -349,6 +349,7 @@ static const struct gpu_ops gp106_ops = { | |||
349 | .set_boosted_ctx = NULL, | 349 | .set_boosted_ctx = NULL, |
350 | .set_preemption_mode = gr_gp10b_set_preemption_mode, | 350 | .set_preemption_mode = gr_gp10b_set_preemption_mode, |
351 | .set_czf_bypass = gr_gp10b_set_czf_bypass, | 351 | .set_czf_bypass = gr_gp10b_set_czf_bypass, |
352 | .init_czf_bypass = gr_gp10b_init_czf_bypass, | ||
352 | .pre_process_sm_exception = gr_gp10b_pre_process_sm_exception, | 353 | .pre_process_sm_exception = gr_gp10b_pre_process_sm_exception, |
353 | .set_preemption_buffer_va = gr_gp10b_set_preemption_buffer_va, | 354 | .set_preemption_buffer_va = gr_gp10b_set_preemption_buffer_va, |
354 | .init_preemption_state = NULL, | 355 | .init_preemption_state = NULL, |
diff --git a/drivers/gpu/nvgpu/gp10b/gr_gp10b.c b/drivers/gpu/nvgpu/gp10b/gr_gp10b.c index 060cc9fb..813b8891 100644 --- a/drivers/gpu/nvgpu/gp10b/gr_gp10b.c +++ b/drivers/gpu/nvgpu/gp10b/gr_gp10b.c | |||
@@ -2361,8 +2361,6 @@ int gr_gp10b_init_preemption_state(struct gk20a *g) | |||
2361 | gr_debug_2_gfxp_wfi_always_injects_wfi_enabled_f()); | 2361 | gr_debug_2_gfxp_wfi_always_injects_wfi_enabled_f()); |
2362 | gk20a_writel(g, gr_debug_2_r(), debug_2); | 2362 | gk20a_writel(g, gr_debug_2_r(), debug_2); |
2363 | 2363 | ||
2364 | g->gr.czf_bypass = gr_gpc0_prop_debug1_czf_bypass_init_v(); | ||
2365 | |||
2366 | return 0; | 2364 | return 0; |
2367 | } | 2365 | } |
2368 | 2366 | ||
@@ -2376,6 +2374,11 @@ void gr_gp10b_set_preemption_buffer_va(struct gk20a *g, | |||
2376 | 2374 | ||
2377 | } | 2375 | } |
2378 | 2376 | ||
2377 | void gr_gp10b_init_czf_bypass(struct gk20a *g) | ||
2378 | { | ||
2379 | g->gr.czf_bypass = gr_gpc0_prop_debug1_czf_bypass_init_v(); | ||
2380 | } | ||
2381 | |||
2379 | int gr_gp10b_set_czf_bypass(struct gk20a *g, struct channel_gk20a *ch) | 2382 | int gr_gp10b_set_czf_bypass(struct gk20a *g, struct channel_gk20a *ch) |
2380 | { | 2383 | { |
2381 | struct nvgpu_dbg_gpu_reg_op ops; | 2384 | struct nvgpu_dbg_gpu_reg_op ops; |
diff --git a/drivers/gpu/nvgpu/gp10b/gr_gp10b.h b/drivers/gpu/nvgpu/gp10b/gr_gp10b.h index 6ae4789a..9ddc0375 100644 --- a/drivers/gpu/nvgpu/gp10b/gr_gp10b.h +++ b/drivers/gpu/nvgpu/gp10b/gr_gp10b.h | |||
@@ -143,6 +143,7 @@ int gr_gp10b_init_preemption_state(struct gk20a *g); | |||
143 | void gr_gp10b_set_preemption_buffer_va(struct gk20a *g, | 143 | void gr_gp10b_set_preemption_buffer_va(struct gk20a *g, |
144 | struct nvgpu_mem *mem, u64 gpu_va); | 144 | struct nvgpu_mem *mem, u64 gpu_va); |
145 | int gr_gp10b_set_czf_bypass(struct gk20a *g, struct channel_gk20a *ch); | 145 | int gr_gp10b_set_czf_bypass(struct gk20a *g, struct channel_gk20a *ch); |
146 | void gr_gp10b_init_czf_bypass(struct gk20a *g); | ||
146 | void gr_gp10b_init_ctxsw_hdr_data(struct gk20a *g, struct nvgpu_mem *mem); | 147 | void gr_gp10b_init_ctxsw_hdr_data(struct gk20a *g, struct nvgpu_mem *mem); |
147 | 148 | ||
148 | struct gr_t18x { | 149 | struct gr_t18x { |
diff --git a/drivers/gpu/nvgpu/gp10b/hal_gp10b.c b/drivers/gpu/nvgpu/gp10b/hal_gp10b.c index a10df740..98e143f0 100644 --- a/drivers/gpu/nvgpu/gp10b/hal_gp10b.c +++ b/drivers/gpu/nvgpu/gp10b/hal_gp10b.c | |||
@@ -303,6 +303,7 @@ static const struct gpu_ops gp10b_ops = { | |||
303 | .set_boosted_ctx = gr_gp10b_set_boosted_ctx, | 303 | .set_boosted_ctx = gr_gp10b_set_boosted_ctx, |
304 | .set_preemption_mode = gr_gp10b_set_preemption_mode, | 304 | .set_preemption_mode = gr_gp10b_set_preemption_mode, |
305 | .set_czf_bypass = gr_gp10b_set_czf_bypass, | 305 | .set_czf_bypass = gr_gp10b_set_czf_bypass, |
306 | .init_czf_bypass = gr_gp10b_init_czf_bypass, | ||
306 | .pre_process_sm_exception = gr_gp10b_pre_process_sm_exception, | 307 | .pre_process_sm_exception = gr_gp10b_pre_process_sm_exception, |
307 | .set_preemption_buffer_va = gr_gp10b_set_preemption_buffer_va, | 308 | .set_preemption_buffer_va = gr_gp10b_set_preemption_buffer_va, |
308 | .init_preemption_state = gr_gp10b_init_preemption_state, | 309 | .init_preemption_state = gr_gp10b_init_preemption_state, |
diff --git a/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c b/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c index 7f18bfe4..320aa4a5 100644 --- a/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c +++ b/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c | |||
@@ -203,6 +203,7 @@ static const struct gpu_ops vgpu_gp10b_ops = { | |||
203 | .set_boosted_ctx = NULL, | 203 | .set_boosted_ctx = NULL, |
204 | .set_preemption_mode = vgpu_gr_gp10b_set_preemption_mode, | 204 | .set_preemption_mode = vgpu_gr_gp10b_set_preemption_mode, |
205 | .set_czf_bypass = gr_gp10b_set_czf_bypass, | 205 | .set_czf_bypass = gr_gp10b_set_czf_bypass, |
206 | .init_czf_bypass = gr_gp10b_init_czf_bypass, | ||
206 | .pre_process_sm_exception = gr_gp10b_pre_process_sm_exception, | 207 | .pre_process_sm_exception = gr_gp10b_pre_process_sm_exception, |
207 | .set_preemption_buffer_va = gr_gp10b_set_preemption_buffer_va, | 208 | .set_preemption_buffer_va = gr_gp10b_set_preemption_buffer_va, |
208 | .init_preemption_state = gr_gp10b_init_preemption_state, | 209 | .init_preemption_state = gr_gp10b_init_preemption_state, |