diff options
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/nvgpu/gv11b/fifo_gv11b.c | 6 |
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) |