diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c index cffc48f56..d84d4ad52 100644 --- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c @@ -2160,7 +2160,7 @@ static int gr_gk20a_wait_ctxsw_ready(struct gk20a *g) return ret; } - if (support_gk20a_pmu(g->dev)) + if (!(g->gpu_characteristics.arch > NVGPU_GPU_ARCH_GM200)) gk20a_writel(g, gr_fecs_current_ctx_r(), gr_fecs_current_ctx_valid_false_f()); diff --git a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c index 7bcda89fa..f24301655 100644 --- a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c @@ -1,7 +1,7 @@ /* * GK20A PMU (aka. gPMU outside gk20a context) * - * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2015, NVIDIA CORPORATION. All rights reserved. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, @@ -3610,6 +3610,10 @@ int gk20a_pmu_enable_elpg(struct gk20a *g) gk20a_dbg_fn(""); + + if (!support_gk20a_pmu(g->dev)) + return ret; + mutex_lock(&pmu->elpg_mutex); pmu->elpg_refcnt++; @@ -3650,6 +3654,9 @@ int gk20a_pmu_disable_elpg(struct gk20a *g) gk20a_dbg_fn(""); + if (!support_gk20a_pmu(g->dev)) + return ret; + mutex_lock(&pmu->elpg_mutex); pmu->elpg_refcnt--;