summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/nvgpu/gk20a/gr_gk20a.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
index 7856f9fb..6c0e0539 100644
--- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
@@ -5584,8 +5584,20 @@ int gk20a_gr_isr(struct gk20a *g)
5584 &post_event, fault_ch); 5584 &post_event, fault_ch);
5585 5585
5586 /* signal clients waiting on an event */ 5586 /* signal clients waiting on an event */
5587 if (gk20a_gr_sm_debugger_attached(g) && post_event && fault_ch) 5587 if (gk20a_gr_sm_debugger_attached(g) && post_event && fault_ch) {
5588 gk20a_dbg_gpu_post_events(fault_ch); 5588 if (gk20a_is_channel_marked_as_tsg(fault_ch)) {
5589 struct tsg_gk20a *tsg = &g->fifo.tsg[fault_ch->tsgid];
5590 struct channel_gk20a *__ch;
5591
5592 mutex_lock(&tsg->ch_list_lock);
5593 list_for_each_entry(__ch, &tsg->ch_list, ch_entry) {
5594 gk20a_dbg_gpu_post_events(__ch);
5595 }
5596 mutex_unlock(&tsg->ch_list_lock);
5597 } else {
5598 gk20a_dbg_gpu_post_events(fault_ch);
5599 }
5600 }
5589 5601
5590 if (need_reset && ch) 5602 if (need_reset && ch)
5591 gk20a_set_error_notifier(ch, 5603 gk20a_set_error_notifier(ch,