mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-23 09:57:08 +03:00
gpu: nvgpu: Enable ELPG when disabled due to reset
Enable ELPG back whenever ELPG disable is done due to reset or recovery. Otherwise elpg_refcnt mismatch doesn’t engage ELPG correctly Bug 200156347 Change-Id: Ic01f85b9e1eff10cfb9cb180b50b045f67d4b33c Signed-off-by: Mahantesh Kumbar <mkumbar@nvidia.com> Reviewed-on: http://git-master/r/925763 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
This commit is contained in:
committed by
Terje Bergstrom
parent
851188a5ac
commit
47bd35e153
@@ -780,6 +780,7 @@ void gk20a_fifo_reset_engine(struct gk20a *g, u32 engine_id)
|
||||
/* resetting engine using mc_enable_r() is not
|
||||
enough, we do full init sequence */
|
||||
gk20a_gr_reset(g);
|
||||
gk20a_pmu_enable_elpg(g);
|
||||
}
|
||||
if (engine_id == top_device_info_type_enum_copy0_v())
|
||||
gk20a_reset(g, mc_enable_ce2_m());
|
||||
@@ -1086,7 +1087,7 @@ static bool gk20a_fifo_handle_mmu_fault(
|
||||
" deferring channel recovery to channel free");
|
||||
/* clear interrupt */
|
||||
gk20a_writel(g, fifo_intr_mmu_fault_id_r(), fault_id);
|
||||
return verbose;
|
||||
goto exit_enable;
|
||||
}
|
||||
|
||||
/* clear interrupt */
|
||||
@@ -1101,6 +1102,7 @@ static bool gk20a_fifo_handle_mmu_fault(
|
||||
gr_gpfifo_ctl_access_enabled_f() |
|
||||
gr_gpfifo_ctl_semaphore_access_enabled_f());
|
||||
|
||||
exit_enable:
|
||||
/* It is safe to enable ELPG again. */
|
||||
if (support_gk20a_pmu(g->dev) && g->elpg_enabled)
|
||||
gk20a_pmu_enable_elpg(g);
|
||||
|
||||
@@ -439,7 +439,10 @@ void gk20a_gr_clear_sm_hww(struct gk20a *g,
|
||||
int err = 0; \
|
||||
if (support_gk20a_pmu(g->dev)) \
|
||||
err = gk20a_pmu_disable_elpg(g); \
|
||||
if (err) return err; \
|
||||
if (err) { \
|
||||
gk20a_pmu_enable_elpg(g); \
|
||||
return err; \
|
||||
} \
|
||||
err = func; \
|
||||
if (support_gk20a_pmu(g->dev)) \
|
||||
gk20a_pmu_enable_elpg(g); \
|
||||
|
||||
Reference in New Issue
Block a user