summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
diff options
context:
space:
mode:
authorRichard Zhao <rizhao@nvidia.com>2018-03-16 14:11:27 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2018-03-29 21:54:02 -0400
commitc5f03db98a20eb4e8b83fd350d293aab6986beff (patch)
tree2f6d53b0bfac835f8fc24ebf3181cf709f394829 /drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
parent5c27ac91fdde693c6f57100dc7fc6be75cc6982a (diff)
gpu: nvgpu: add gops.fifo.ch_abort_clean_up
Channel abort clean up is only needed by native and vgpu driver but not RM server. RM server expects guest will clean up itself. RM server should not set the callback. Jira VQRM-3058 Change-Id: I11b49b6f2d51c871e31de16955d487dca82609cb Signed-off-by: Richard Zhao <rizhao@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1679705 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.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
index 6a7afad7..f069b193 100644
--- a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
@@ -1432,7 +1432,8 @@ void gk20a_fifo_abort_tsg(struct gk20a *g, u32 tsgid, bool preempt)
1432 nvgpu_list_for_each_entry(ch, &tsg->ch_list, channel_gk20a, ch_entry) { 1432 nvgpu_list_for_each_entry(ch, &tsg->ch_list, channel_gk20a, ch_entry) {
1433 if (gk20a_channel_get(ch)) { 1433 if (gk20a_channel_get(ch)) {
1434 ch->has_timedout = true; 1434 ch->has_timedout = true;
1435 gk20a_channel_abort_clean_up(ch); 1435 if (ch->g->ops.fifo.ch_abort_clean_up)
1436 ch->g->ops.fifo.ch_abort_clean_up(ch);
1436 gk20a_channel_put(ch); 1437 gk20a_channel_put(ch);
1437 } 1438 }
1438 } 1439 }
@@ -2016,7 +2017,8 @@ int gk20a_fifo_tsg_unbind_channel(struct channel_gk20a *ch)
2016 if (!tsg_timedout) 2017 if (!tsg_timedout)
2017 g->ops.fifo.enable_tsg(tsg); 2018 g->ops.fifo.enable_tsg(tsg);
2018 2019
2019 gk20a_channel_abort_clean_up(ch); 2020 if (ch->g->ops.fifo.ch_abort_clean_up)
2021 ch->g->ops.fifo.ch_abort_clean_up(ch);
2020 2022
2021 return 0; 2023 return 0;
2022 2024