summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorSeema Khowala <seemaj@nvidia.com>2018-02-27 14:54:30 -0500
committermobile promotions <svcmobile_promotions@nvidia.com>2018-06-24 12:53:11 -0400
commit797dde3e32647df3b616cea67f4defae59d38b3f (patch)
tree23cdb5372406edb0d646558b36126beaad1b4907 /drivers
parentf37d958ce271e9733227165cd9314da8f5af2fd6 (diff)
gpu: nvgpu: gv11b: disable/enable runlist sched during tsg preempt
Disable sched before tsg preempt and re-enable after preempt is done or timed out. This is a WAR to fix Bug 2065990. Bug 2065990 Change-Id: I5f807449960d83366a3ed8c352ba4627fc1e7836 Signed-off-by: Seema Khowala <seemaj@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1665319 Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/nvgpu/gv11b/fifo_gv11b.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gv11b/fifo_gv11b.c b/drivers/gpu/nvgpu/gv11b/fifo_gv11b.c
index 9c64675f..7e0ce4c6 100644
--- a/drivers/gpu/nvgpu/gv11b/fifo_gv11b.c
+++ b/drivers/gpu/nvgpu/gv11b/fifo_gv11b.c
@@ -837,6 +837,9 @@ int gv11b_fifo_preempt_tsg(struct gk20a *g, u32 tsgid)
837 837
838 nvgpu_mutex_acquire(&f->runlist_info[runlist_id].runlist_lock); 838 nvgpu_mutex_acquire(&f->runlist_info[runlist_id].runlist_lock);
839 839
840 /* WAR for Bug 2065990 */
841 gk20a_fifo_disable_tsg_sched(g, &f->tsg[tsgid]);
842
840 mutex_ret = nvgpu_pmu_mutex_acquire(&g->pmu, PMU_MUTEX_ID_FIFO, &token); 843 mutex_ret = nvgpu_pmu_mutex_acquire(&g->pmu, PMU_MUTEX_ID_FIFO, &token);
841 844
842 ret = __locked_fifo_preempt(g, tsgid, true); 845 ret = __locked_fifo_preempt(g, tsgid, true);
@@ -844,6 +847,9 @@ int gv11b_fifo_preempt_tsg(struct gk20a *g, u32 tsgid)
844 if (!mutex_ret) 847 if (!mutex_ret)
845 nvgpu_pmu_mutex_release(&g->pmu, PMU_MUTEX_ID_FIFO, &token); 848 nvgpu_pmu_mutex_release(&g->pmu, PMU_MUTEX_ID_FIFO, &token);
846 849
850 /* WAR for Bug 2065990 */
851 gk20a_fifo_enable_tsg_sched(g, &f->tsg[tsgid]);
852
847 nvgpu_mutex_release(&f->runlist_info[runlist_id].runlist_lock); 853 nvgpu_mutex_release(&f->runlist_info[runlist_id].runlist_lock);
848 854
849 if (ret) 855 if (ret)