diff options
author | Debarshi Dutta <ddutta@nvidia.com> | 2018-11-22 23:00:17 -0500 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2019-02-11 11:18:33 -0500 |
commit | 5b8ecbc51fe2e94a233c2c42d497b05c2eccdaf5 (patch) | |
tree | bce75e5e83f4370d763478587acca0faba786cbd /drivers/gpu/nvgpu/gk20a/fifo_gk20a.c | |
parent | 7e8ba851a826f398fb722b9ff26d6fd40f3226ce (diff) |
gpu: nvgpu: replace tsgid input variable with pointer to a struct tsg_gk20a
replace tsgid with a pointer to a struct tsg_gk20a in the function
gk20a_fifo_tsg_abort(). gk20a_fifo_tsg_abort needs to enumerate through
all the channels within the tsg as well as pass the tsg pointer to
other functions, qualifying the need to use a pointer instead as an
input parameter.
Jira NVGPU-1461
Change-Id: I59cec05d5d778f733d0c3e9ffadf46e74e249080
Signed-off-by: Debarshi Dutta <ddutta@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1956567
(cherry picked from commit e5bebd880f28fe719c5e01e165fb189e7cafee01
in dev-kernel)
Reviewed-on: https://git-master.nvidia.com/r/2013724
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Bibek Basu <bbasu@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/fifo_gk20a.c')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/fifo_gk20a.c | 11 |
1 files changed, 5 insertions, 6 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 | ||
1556 | void gk20a_fifo_abort_tsg(struct gk20a *g, u32 tsgid, bool preempt) | 1556 | void 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); |