]> rtime.felk.cvut.cz Git - sojka/nv-tegra/linux-3.10.git/commitdiff
gpu: nvgpu: Do not call ELPG if disabled
authorTerje Bergstrom <tbergstrom@nvidia.com>
Tue, 4 Nov 2014 10:17:21 +0000 (12:17 +0200)
committerTerje Bergstrom <tbergstrom@nvidia.com>
Thu, 6 Nov 2014 06:19:17 +0000 (22:19 -0800)
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>
drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
drivers/gpu/nvgpu/gk20a/gk20a.c

index 4095b0796ea5577753019e0ce453bad0259b6806..df6b84c50f0050100c0f631253b13696b4d77103 100644 (file)
@@ -900,7 +900,8 @@ void fifo_gk20a_finish_mmu_fault_handling(struct gk20a *g,
                     gr_gpfifo_ctl_semaphore_access_enabled_f());
 
        /* It is safe to enable ELPG again. */
-       gk20a_pmu_enable_elpg(g);
+       if (support_gk20a_pmu(g->dev) && g->elpg_enabled)
+               gk20a_pmu_enable_elpg(g);
 }
 
 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)
        g->fifo.deferred_reset_pending = false;
 
        /* Disable power management */
-       gk20a_pmu_disable_elpg(g);
+       if (support_gk20a_pmu(g->dev) && g->elpg_enabled)
+               gk20a_pmu_disable_elpg(g);
        g->ops.clock_gating.slcg_gr_load_gating_prod(g,
                        false);
        g->ops.clock_gating.slcg_perf_load_gating_prod(g,
index ec38bfe5b1de5e6ddc7d0383e0499b55f2ebfdce..8dd64c8e690a0d9a8ec28b15b298701aea29a402 100644 (file)
@@ -820,7 +820,8 @@ static int gk20a_pm_finalize_poweron(struct device *dev)
                goto done;
        }
 
-       err = g->ops.pmu.prepare_ucode(g);
+       if (g->ops.pmu.prepare_ucode)
+               err = g->ops.pmu.prepare_ucode(g);
        if (err) {
                gk20a_err(dev, "failed to init pmu ucode");
                goto done;