diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/gr_gk20a.c')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gr_gk20a.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c index b94eade1..a9a87a54 100644 --- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c | |||
@@ -5288,10 +5288,16 @@ int gk20a_gr_handle_fecs_error(struct gk20a *g, struct channel_gk20a *ch, | |||
5288 | gk20a_readl(g, gr_fecs_ctxsw_mailbox_r(6)), | 5288 | gk20a_readl(g, gr_fecs_ctxsw_mailbox_r(6)), |
5289 | isr_data->data_lo); | 5289 | isr_data->data_lo); |
5290 | ret = -1; | 5290 | ret = -1; |
5291 | } else if ((gr_fecs_intr & | ||
5292 | gr_fecs_host_int_status_watchdog_active_f()) != 0U) { | ||
5293 | /* currently, recovery is not initiated */ | ||
5294 | nvgpu_err(g, "fecs watchdog triggered for channel %u, " | ||
5295 | "cannot ctxsw anymore !!", isr_data->chid); | ||
5296 | gk20a_fecs_dump_falcon_stats(g); | ||
5291 | } else { | 5297 | } else { |
5292 | nvgpu_err(g, | 5298 | nvgpu_err(g, |
5293 | "fecs error interrupt 0x%08x for channel %u", | 5299 | "fecs error interrupt 0x%08x for channel %u", |
5294 | gr_fecs_intr, isr_data->chid); | 5300 | gr_fecs_intr, isr_data->chid); |
5295 | } | 5301 | } |
5296 | 5302 | ||
5297 | gk20a_writel(g, gr_fecs_host_int_clear_r(), gr_fecs_intr); | 5303 | gk20a_writel(g, gr_fecs_host_int_clear_r(), gr_fecs_intr); |