summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a')
-rw-r--r--drivers/gpu/nvgpu/gk20a/fifo_gk20a.c11
-rw-r--r--drivers/gpu/nvgpu/gk20a/fifo_gk20a.h2
2 files changed, 6 insertions, 7 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
index 5e794a55..9ed78640 100644
--- a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
@@ -1553,17 +1553,16 @@ void gk20a_fifo_set_ctx_mmu_error_tsg(struct gk20a *g,
1553 1553
1554} 1554}
1555 1555
1556void gk20a_fifo_abort_tsg(struct gk20a *g, u32 tsgid, bool preempt) 1556void gk20a_fifo_abort_tsg(struct gk20a *g, struct tsg_gk20a *tsg, bool preempt)
1557{ 1557{
1558 struct tsg_gk20a *tsg = &g->fifo.tsg[tsgid]; 1558 struct channel_gk20a *ch = NULL;
1559 struct channel_gk20a *ch;
1560 1559
1561 nvgpu_log_fn(g, " "); 1560 nvgpu_log_fn(g, " ");
1562 1561
1563 g->ops.fifo.disable_tsg(tsg); 1562 g->ops.fifo.disable_tsg(tsg);
1564 1563
1565 if (preempt) { 1564 if (preempt) {
1566 g->ops.fifo.preempt_tsg(g, tsgid); 1565 g->ops.fifo.preempt_tsg(g, tsg->tsgid);
1567 } 1566 }
1568 1567
1569 nvgpu_rwsem_down_read(&tsg->ch_list_lock); 1568 nvgpu_rwsem_down_read(&tsg->ch_list_lock);
@@ -1809,7 +1808,7 @@ static bool gk20a_fifo_handle_mmu_fault_locked(
1809 tsg); 1808 tsg);
1810 } 1809 }
1811 verbose = gk20a_fifo_error_tsg(g, tsg); 1810 verbose = gk20a_fifo_error_tsg(g, tsg);
1812 gk20a_fifo_abort_tsg(g, tsg->tsgid, false); 1811 gk20a_fifo_abort_tsg(g, tsg, false);
1813 } 1812 }
1814 1813
1815 /* put back the ref taken early above */ 1814 /* put back the ref taken early above */
@@ -1998,7 +1997,7 @@ void gk20a_fifo_recover_tsg(struct gk20a *g, u32 tsgid, bool verbose,
1998 gk20a_debug_dump(g); 1997 gk20a_debug_dump(g);
1999 } 1998 }
2000 1999
2001 gk20a_fifo_abort_tsg(g, tsgid, false); 2000 gk20a_fifo_abort_tsg(g, tsg, false);
2002 } 2001 }
2003 2002
2004 gr_gk20a_enable_ctxsw(g); 2003 gr_gk20a_enable_ctxsw(g);
diff --git a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.h b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.h
index 2b646a7b..f3c1b362 100644
--- a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.h
@@ -287,7 +287,7 @@ u32 gk20a_fifo_get_failing_engine_data(struct gk20a *g,
287 int *__id, bool *__is_tsg); 287 int *__id, bool *__is_tsg);
288void gk20a_fifo_set_ctx_mmu_error_tsg(struct gk20a *g, 288void gk20a_fifo_set_ctx_mmu_error_tsg(struct gk20a *g,
289 struct tsg_gk20a *tsg); 289 struct tsg_gk20a *tsg);
290void gk20a_fifo_abort_tsg(struct gk20a *g, u32 tsgid, bool preempt); 290void gk20a_fifo_abort_tsg(struct gk20a *g, struct tsg_gk20a *tsg, bool preempt);
291void gk20a_fifo_set_ctx_mmu_error_ch(struct gk20a *g, 291void gk20a_fifo_set_ctx_mmu_error_ch(struct gk20a *g,
292 struct channel_gk20a *refch); 292 struct channel_gk20a *refch);
293bool gk20a_fifo_error_tsg(struct gk20a *g, struct tsg_gk20a *tsg); 293bool gk20a_fifo_error_tsg(struct gk20a *g, struct tsg_gk20a *tsg);