diff options
author | Terje Bergstrom <tbergstrom@nvidia.com> | 2014-11-04 05:17:21 -0500 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2015-03-18 15:12:02 -0400 |
commit | afc470e867b7feb9338ccb086ace8989604683e0 (patch) | |
tree | 3ee866fb4977be9d96e25ce76f9245ce2d777b02 /drivers/gpu/nvgpu | |
parent | b3f575074b66e8af1a9943874f9782b793fa7edc (diff) |
gpu: nvgpu: Do not call ELPG if disabled
Do not call PMU ELPG calls if ELPG should be disabled. Also skips
initialization of PMU ucode if PMU is disabled.
Bug 1567274
Change-Id: Ia9cd3b553c358142ee05a1b0e0832f9412f7cf17
Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-on: http://git-master/r/593335
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Seshendra Gadagottu <sgadagottu@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/fifo_gk20a.c | 6 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a.c | 3 |
2 files changed, 6 insertions, 3 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c index 4095b079..df6b84c5 100644 --- a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c | |||
@@ -900,7 +900,8 @@ void fifo_gk20a_finish_mmu_fault_handling(struct gk20a *g, | |||
900 | gr_gpfifo_ctl_semaphore_access_enabled_f()); | 900 | gr_gpfifo_ctl_semaphore_access_enabled_f()); |
901 | 901 | ||
902 | /* It is safe to enable ELPG again. */ | 902 | /* It is safe to enable ELPG again. */ |
903 | gk20a_pmu_enable_elpg(g); | 903 | if (support_gk20a_pmu(g->dev) && g->elpg_enabled) |
904 | gk20a_pmu_enable_elpg(g); | ||
904 | } | 905 | } |
905 | 906 | ||
906 | static bool gk20a_fifo_set_ctx_mmu_error(struct gk20a *g, | 907 | static bool gk20a_fifo_set_ctx_mmu_error(struct gk20a *g, |
@@ -974,7 +975,8 @@ static bool gk20a_fifo_handle_mmu_fault(struct gk20a *g) | |||
974 | g->fifo.deferred_reset_pending = false; | 975 | g->fifo.deferred_reset_pending = false; |
975 | 976 | ||
976 | /* Disable power management */ | 977 | /* Disable power management */ |
977 | gk20a_pmu_disable_elpg(g); | 978 | if (support_gk20a_pmu(g->dev) && g->elpg_enabled) |
979 | gk20a_pmu_disable_elpg(g); | ||
978 | g->ops.clock_gating.slcg_gr_load_gating_prod(g, | 980 | g->ops.clock_gating.slcg_gr_load_gating_prod(g, |
979 | false); | 981 | false); |
980 | g->ops.clock_gating.slcg_perf_load_gating_prod(g, | 982 | g->ops.clock_gating.slcg_perf_load_gating_prod(g, |
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.c b/drivers/gpu/nvgpu/gk20a/gk20a.c index 276e5c3e..58108d97 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gk20a.c | |||
@@ -820,7 +820,8 @@ static int gk20a_pm_finalize_poweron(struct device *dev) | |||
820 | goto done; | 820 | goto done; |
821 | } | 821 | } |
822 | 822 | ||
823 | err = g->ops.pmu.prepare_ucode(g); | 823 | if (g->ops.pmu.prepare_ucode) |
824 | err = g->ops.pmu.prepare_ucode(g); | ||
824 | if (err) { | 825 | if (err) { |
825 | gk20a_err(dev, "failed to init pmu ucode"); | 826 | gk20a_err(dev, "failed to init pmu ucode"); |
826 | goto done; | 827 | goto done; |