diff options
author | Seema Khowala <seemaj@nvidia.com> | 2018-02-27 14:54:30 -0500 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2018-06-24 12:53:11 -0400 |
commit | 797dde3e32647df3b616cea67f4defae59d38b3f (patch) | |
tree | 23cdb5372406edb0d646558b36126beaad1b4907 /drivers/gpu/nvgpu | |
parent | f37d958ce271e9733227165cd9314da8f5af2fd6 (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/gpu/nvgpu')
-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) |