summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gv11b
diff options
context:
space:
mode:
authorSeema Khowala <seemaj@nvidia.com>2018-01-19 17:47:47 -0500
committermobile promotions <svcmobile_promotions@nvidia.com>2018-01-31 16:23:21 -0500
commit9beefc45516097db2eabf2887ff66d3334ff9fde (patch)
treec2b390e4b6ebfb642c87af423a22290561fc60bf /drivers/gpu/nvgpu/gv11b
parent8e523a9a53088cd6b8645ab2b9ea8b3cd7cd5e9d (diff)
gpu: nvgpu: add fecs_host_int_enable hal
This will be used to enable fecs interrupts per chip. Change-Id: Id99412ca1a9c4caad999c3458b0e9701515db4b9 Signed-off-by: Seema Khowala <seemaj@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1642554 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gv11b')
-rw-r--r--drivers/gpu/nvgpu/gv11b/gr_gv11b.c19
-rw-r--r--drivers/gpu/nvgpu/gv11b/gr_gv11b.h1
-rw-r--r--drivers/gpu/nvgpu/gv11b/hal_gv11b.c1
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
324void 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
324void gr_gv11b_enable_exceptions(struct gk20a *g) 337void 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);
136void gr_gv11b_fecs_host_int_enable(struct gk20a *g);
136int gr_gv11b_handle_fecs_error(struct gk20a *g, 137int 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,