diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a.h | 3 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gr_gk20a.c | 4 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gr_gk20a.h | 10 |
3 files changed, 12 insertions, 5 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h index 13d534c4..80d85d65 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/gk20a.h | |||
@@ -361,8 +361,7 @@ struct gpu_ops { | |||
361 | u32 gpc, u32 tpc); | 361 | u32 gpc, u32 tpc); |
362 | int (*update_sm_error_state)(struct gk20a *g, | 362 | int (*update_sm_error_state)(struct gk20a *g, |
363 | struct channel_gk20a *ch, u32 sm_id, | 363 | struct channel_gk20a *ch, u32 sm_id, |
364 | struct nvgpu_dbg_gpu_sm_error_state_record * | 364 | struct nvgpu_gr_sm_error_state *sm_error_state); |
365 | sm_error_state); | ||
366 | int (*clear_sm_error_state)(struct gk20a *g, | 365 | int (*clear_sm_error_state)(struct gk20a *g, |
367 | struct channel_gk20a *ch, u32 sm_id); | 366 | struct channel_gk20a *ch, u32 sm_id); |
368 | int (*suspend_contexts)(struct gk20a *g, | 367 | int (*suspend_contexts)(struct gk20a *g, |
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c index 5910c7d9..2fd6f72c 100644 --- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c | |||
@@ -1543,7 +1543,7 @@ restore_fe_go_idle: | |||
1543 | * we initialize gr->no_of_sm in this function | 1543 | * we initialize gr->no_of_sm in this function |
1544 | */ | 1544 | */ |
1545 | gr->sm_error_states = nvgpu_kzalloc(g, | 1545 | gr->sm_error_states = nvgpu_kzalloc(g, |
1546 | sizeof(struct nvgpu_dbg_gpu_sm_error_state_record) | 1546 | sizeof(struct nvgpu_gr_sm_error_state) |
1547 | * gr->no_of_sm); | 1547 | * gr->no_of_sm); |
1548 | if (!gr->sm_error_states) { | 1548 | if (!gr->sm_error_states) { |
1549 | err = -ENOMEM; | 1549 | err = -ENOMEM; |
@@ -4566,7 +4566,7 @@ restore_fe_go_idle: | |||
4566 | * we initialize gr->no_of_sm in this function | 4566 | * we initialize gr->no_of_sm in this function |
4567 | */ | 4567 | */ |
4568 | gr->sm_error_states = nvgpu_kzalloc(g, | 4568 | gr->sm_error_states = nvgpu_kzalloc(g, |
4569 | sizeof(struct nvgpu_dbg_gpu_sm_error_state_record) * | 4569 | sizeof(struct nvgpu_gr_sm_error_state) * |
4570 | gr->no_of_sm); | 4570 | gr->no_of_sm); |
4571 | if (!gr->sm_error_states) { | 4571 | if (!gr->sm_error_states) { |
4572 | err = -ENOMEM; | 4572 | err = -ENOMEM; |
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.h b/drivers/gpu/nvgpu/gk20a/gr_gk20a.h index 6b422138..22fc40d1 100644 --- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.h | |||
@@ -231,6 +231,14 @@ struct nvgpu_preemption_modes_rec { | |||
231 | u32 default_compute_preempt_mode; /* default mode */ | 231 | u32 default_compute_preempt_mode; /* default mode */ |
232 | }; | 232 | }; |
233 | 233 | ||
234 | struct nvgpu_gr_sm_error_state { | ||
235 | u32 hww_global_esr; | ||
236 | u32 hww_warp_esr; | ||
237 | u64 hww_warp_esr_pc; | ||
238 | u32 hww_global_esr_report_mask; | ||
239 | u32 hww_warp_esr_report_mask; | ||
240 | }; | ||
241 | |||
234 | struct gr_gk20a { | 242 | struct gr_gk20a { |
235 | struct gk20a *g; | 243 | struct gk20a *g; |
236 | struct { | 244 | struct { |
@@ -387,7 +395,7 @@ struct gr_gk20a { | |||
387 | u32 *fbp_rop_l2_en_mask; | 395 | u32 *fbp_rop_l2_en_mask; |
388 | u32 no_of_sm; | 396 | u32 no_of_sm; |
389 | struct sm_info *sm_to_cluster; | 397 | struct sm_info *sm_to_cluster; |
390 | struct nvgpu_dbg_gpu_sm_error_state_record *sm_error_states; | 398 | struct nvgpu_gr_sm_error_state *sm_error_states; |
391 | #if defined(CONFIG_GK20A_CYCLE_STATS) | 399 | #if defined(CONFIG_GK20A_CYCLE_STATS) |
392 | struct nvgpu_mutex cs_lock; | 400 | struct nvgpu_mutex cs_lock; |
393 | struct gk20a_cs_snapshot *cs_data; | 401 | struct gk20a_cs_snapshot *cs_data; |