mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-22 17:36:20 +03:00
gpu: nvgpu: Disable low power features on AV+L
NVGPU does not support low power features on hypervisor based embedded environments.Disable low power features like ELPG, AELPG and railgating on AV+L using the nvgpu_is_hypervisor_mode(). JIRA NVGPU-7283 Change-Id: I930e06ae711ee1485109b7f519a2dacc95b7d74b Signed-off-by: Tejal Kudav <tkudav@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2610056 Reviewed-by: svcacv <svcacv@nvidia.com> Reviewed-by: Alex Waterman <alexw@nvidia.com> Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> GVS: Gerrit_Virtual_Submit Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
committed by
mobile promotions
parent
5d42343cbf
commit
6648cfea09
@@ -204,8 +204,13 @@ static void nvgpu_init_pm_vars(struct gk20a *g)
|
|||||||
#endif
|
#endif
|
||||||
g->ptimer_src_freq = platform->ptimer_src_freq;
|
g->ptimer_src_freq = platform->ptimer_src_freq;
|
||||||
|
|
||||||
nvgpu_set_enabled(g, NVGPU_CAN_RAILGATE,
|
if (nvgpu_is_hypervisor_mode(g)) {
|
||||||
nvgpu_platform_is_simulation(g)? true : platform->can_railgate_init);
|
nvgpu_set_enabled(g, NVGPU_CAN_RAILGATE, false);
|
||||||
|
platform->can_railgate_init = false;
|
||||||
|
} else {
|
||||||
|
nvgpu_set_enabled(g, NVGPU_CAN_RAILGATE,
|
||||||
|
nvgpu_platform_is_simulation(g) ? true : platform->can_railgate_init);
|
||||||
|
}
|
||||||
#ifdef CONFIG_NVGPU_STATIC_POWERGATE
|
#ifdef CONFIG_NVGPU_STATIC_POWERGATE
|
||||||
g->can_tpc_pg = platform->can_tpc_pg;
|
g->can_tpc_pg = platform->can_tpc_pg;
|
||||||
g->can_gpc_pg = platform->can_gpc_pg;
|
g->can_gpc_pg = platform->can_gpc_pg;
|
||||||
@@ -227,14 +232,20 @@ static void nvgpu_init_pm_vars(struct gk20a *g)
|
|||||||
g->support_ls_pmu = support_gk20a_pmu(dev_from_gk20a(g));
|
g->support_ls_pmu = support_gk20a_pmu(dev_from_gk20a(g));
|
||||||
|
|
||||||
if (g->support_ls_pmu) {
|
if (g->support_ls_pmu) {
|
||||||
g->elpg_enabled =
|
if (nvgpu_is_hypervisor_mode(g)) {
|
||||||
nvgpu_platform_is_silicon(g) ? platform->enable_elpg : false;
|
g->elpg_enabled = false;
|
||||||
g->aelpg_enabled =
|
g->aelpg_enabled = false;
|
||||||
nvgpu_platform_is_silicon(g) ? platform->enable_aelpg : false;
|
g->can_elpg = false;
|
||||||
|
} else {
|
||||||
|
g->elpg_enabled =
|
||||||
|
nvgpu_platform_is_silicon(g) ? platform->enable_elpg : false;
|
||||||
|
g->aelpg_enabled =
|
||||||
|
nvgpu_platform_is_silicon(g) ? platform->enable_aelpg : false;
|
||||||
|
g->can_elpg =
|
||||||
|
nvgpu_platform_is_silicon(g) ? platform->can_elpg_init : false;
|
||||||
|
}
|
||||||
g->mscg_enabled =
|
g->mscg_enabled =
|
||||||
nvgpu_platform_is_silicon(g) ? platform->enable_mscg : false;
|
nvgpu_platform_is_silicon(g) ? platform->enable_mscg : false;
|
||||||
g->can_elpg =
|
|
||||||
nvgpu_platform_is_silicon(g) ? platform->can_elpg_init : false;
|
|
||||||
if (nvgpu_is_enabled(g, NVGPU_SUPPORT_MIG)) {
|
if (nvgpu_is_enabled(g, NVGPU_SUPPORT_MIG)) {
|
||||||
g->can_elpg = false;
|
g->can_elpg = false;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user