summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
diff options
context:
space:
mode:
authorAshutosh Jain <ashutoshj@nvidia.com>2016-02-17 08:00:48 -0500
committerTerje Bergstrom <tbergstrom@nvidia.com>2016-02-23 11:02:46 -0500
commite55a459e2bb410a6dbd084266a652ab1056ca1dd (patch)
treee3fd20f360003290b5c73a9b607e2908ba6bc2b8 /drivers/gpu/nvgpu/gk20a/gr_gk20a.c
parentd3bd5adfca9698db4930fd0af7dee844ea03e24c (diff)
gpu: nvgpu: post events on all channels of TSG.
Raise the SM exception event on dbg fds of all channels as userspace might have registered on only one of the channels. WAR till we fix Bug 200089620 Bug 1724367 Change-Id: I69c20ee9837927c116f350f4bdc70af5e90cd0a8 Signed-off-by: Ashutosh Jain <ashutoshj@nvidia.com> Reviewed-on: http://git-master/r/1012851 (cherry picked from commit 92f7086856bc9e23b39c5f3ceec3130b6407e0d1) Reviewed-on: http://git-master/r/1013813 GVS: Gerrit_Virtual_Submit Reviewed-by: Deepak Nibade <dnibade@nvidia.com> Tested-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/gr_gk20a.c')
-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,