From 6d585840ad5887407512dd292698100df50e5eed Mon Sep 17 00:00:00 2001 From: Mahantesh Kumbar Date: Fri, 26 Feb 2016 15:27:44 +0530 Subject: 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 Bug 1716764 Change-Id: I9284bb52b32fe911bb8eb260f138b616f4a564be Signed-off-by: Mahantesh Kumbar Reviewed-on: http://git-master/r/1020617 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom Reviewed-by: Seshendra Gadagottu Tested-by: Terje Bergstrom --- drivers/gpu/nvgpu/gk20a/gr_gk20a.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'drivers/gpu/nvgpu/gk20a/gr_gk20a.h') diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.h b/drivers/gpu/nvgpu/gk20a/gr_gk20a.h index 9c37fd02..326b4f96 100644 --- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.h @@ -458,11 +458,15 @@ void gk20a_gr_clear_sm_hww(struct gk20a *g, #define gr_gk20a_elpg_protected_call(g, func) \ ({ \ int err = 0; \ - if (support_gk20a_pmu(g->dev)) \ + if (support_gk20a_pmu(g->dev) && g->elpg_enabled) {\ 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)) \ + if (support_gk20a_pmu(g->dev) && g->elpg_enabled) \ gk20a_pmu_enable_elpg(g); \ err; \ }) -- cgit v1.2.2