diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gv11b')
-rw-r--r-- | drivers/gpu/nvgpu/gv11b/gr_gv11b.c | 19 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gv11b/gr_gv11b.h | 1 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gv11b/hal_gv11b.c | 1 |
3 files changed, 18 insertions, 3 deletions
diff --git a/drivers/gpu/nvgpu/gv11b/gr_gv11b.c b/drivers/gpu/nvgpu/gv11b/gr_gv11b.c index 857f4944..6b43fcc8 100644 --- a/drivers/gpu/nvgpu/gv11b/gr_gv11b.c +++ b/drivers/gpu/nvgpu/gv11b/gr_gv11b.c | |||
@@ -321,6 +321,19 @@ void gr_gv11b_enable_hww_exceptions(struct gk20a *g) | |||
321 | gr_memfmt_hww_esr_reset_active_f()); | 321 | gr_memfmt_hww_esr_reset_active_f()); |
322 | } | 322 | } |
323 | 323 | ||
324 | void gr_gv11b_fecs_host_int_enable(struct gk20a *g) | ||
325 | { | ||
326 | gk20a_writel(g, gr_fecs_host_int_enable_r(), | ||
327 | gr_fecs_host_int_enable_ctxsw_intr1_enable_f() | | ||
328 | gr_fecs_host_int_enable_fault_during_ctxsw_enable_f() | | ||
329 | gr_fecs_host_int_enable_umimp_firmware_method_enable_f() | | ||
330 | gr_fecs_host_int_enable_umimp_illegal_method_enable_f() | | ||
331 | gr_fecs_host_int_enable_watchdog_enable_f() | | ||
332 | gr_fecs_host_int_enable_flush_when_busy_enable_f() | | ||
333 | gr_fecs_host_int_enable_ecc_corrected_enable_f() | | ||
334 | gr_fecs_host_int_enable_ecc_uncorrected_enable_f()); | ||
335 | } | ||
336 | |||
324 | void gr_gv11b_enable_exceptions(struct gk20a *g) | 337 | void gr_gv11b_enable_exceptions(struct gk20a *g) |
325 | { | 338 | { |
326 | struct gr_gk20a *gr = &g->gr; | 339 | struct gr_gk20a *gr = &g->gr; |
@@ -2249,13 +2262,13 @@ int gr_gv11b_handle_fecs_error(struct gk20a *g, | |||
2249 | u32 gr_fecs_intr = gk20a_readl(g, gr_fecs_host_int_status_r()); | 2262 | u32 gr_fecs_intr = gk20a_readl(g, gr_fecs_host_int_status_r()); |
2250 | int ret; | 2263 | int ret; |
2251 | 2264 | ||
2252 | gk20a_dbg(gpu_dbg_fn | gpu_dbg_gpu_dbg | gpu_dbg_intr, ""); | 2265 | nvgpu_log(g, gpu_dbg_fn | gpu_dbg_gpu_dbg | gpu_dbg_intr, " "); |
2253 | |||
2254 | ret = gr_gp10b_handle_fecs_error(g, __ch, isr_data); | ||
2255 | 2266 | ||
2256 | /* Handle ECC errors */ | 2267 | /* Handle ECC errors */ |
2257 | gr_gv11b_handle_fecs_ecc_error(g, gr_fecs_intr); | 2268 | gr_gv11b_handle_fecs_ecc_error(g, gr_fecs_intr); |
2258 | 2269 | ||
2270 | ret = gr_gp10b_handle_fecs_error(g, __ch, isr_data); | ||
2271 | |||
2259 | return ret; | 2272 | return ret; |
2260 | } | 2273 | } |
2261 | 2274 | ||
diff --git a/drivers/gpu/nvgpu/gv11b/gr_gv11b.h b/drivers/gpu/nvgpu/gv11b/gr_gv11b.h index 774afe56..157c567a 100644 --- a/drivers/gpu/nvgpu/gv11b/gr_gv11b.h +++ b/drivers/gpu/nvgpu/gv11b/gr_gv11b.h | |||
@@ -133,6 +133,7 @@ int gr_gv11b_pre_process_sm_exception(struct gk20a *g, | |||
133 | u32 gpc, u32 tpc, u32 sm, u32 global_esr, u32 warp_esr, | 133 | u32 gpc, u32 tpc, u32 sm, u32 global_esr, u32 warp_esr, |
134 | bool sm_debugger_attached, struct channel_gk20a *fault_ch, | 134 | bool sm_debugger_attached, struct channel_gk20a *fault_ch, |
135 | bool *early_exit, bool *ignore_debugger); | 135 | bool *early_exit, bool *ignore_debugger); |
136 | void gr_gv11b_fecs_host_int_enable(struct gk20a *g); | ||
136 | int gr_gv11b_handle_fecs_error(struct gk20a *g, | 137 | int gr_gv11b_handle_fecs_error(struct gk20a *g, |
137 | struct channel_gk20a *__ch, | 138 | struct channel_gk20a *__ch, |
138 | struct gr_gk20a_isr_data *isr_data); | 139 | struct gr_gk20a_isr_data *isr_data); |
diff --git a/drivers/gpu/nvgpu/gv11b/hal_gv11b.c b/drivers/gpu/nvgpu/gv11b/hal_gv11b.c index 97660917..ec86d74c 100644 --- a/drivers/gpu/nvgpu/gv11b/hal_gv11b.c +++ b/drivers/gpu/nvgpu/gv11b/hal_gv11b.c | |||
@@ -398,6 +398,7 @@ static const struct gpu_ops gv11b_ops = { | |||
398 | gr_gv11b_get_max_gfxp_wfi_timeout_count, | 398 | gr_gv11b_get_max_gfxp_wfi_timeout_count, |
399 | .ecc_init_scrub_reg = gr_gv11b_ecc_init_scrub_reg, | 399 | .ecc_init_scrub_reg = gr_gv11b_ecc_init_scrub_reg, |
400 | .dump_ctxsw_stats = gr_gp10b_dump_ctxsw_stats, | 400 | .dump_ctxsw_stats = gr_gp10b_dump_ctxsw_stats, |
401 | .fecs_host_int_enable = gr_gv11b_fecs_host_int_enable, | ||
401 | }, | 402 | }, |
402 | .fb = { | 403 | .fb = { |
403 | .reset = gv11b_fb_reset, | 404 | .reset = gv11b_fb_reset, |