From 7b1e8cad1f3612d8059e1dfd870f4928a68691fa Mon Sep 17 00:00:00 2001 From: Trigger Huang Date: Wed, 16 Nov 2016 10:13:45 -0500 Subject: [PATCH] drm/amdgpu: Disable DPM in virtualization MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This patch is used for virtualization support. In virtualization, only SMU manager is needed, DPM should be disabled. This is a use case for commit 2f9346b6f984 ("drm/amdgpu/powerplay: pp module only enable smu when dpm disabled.") Signed-off-by: Trigger Huang Reviewed-by: Christian König Signed-off-by: Alex Deucher --- drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c | 2 +- drivers/gpu/drm/amd/powerplay/amd_powerplay.c | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c index e2f0507eaac1..fc592c2b0e16 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c @@ -184,7 +184,7 @@ static int amdgpu_pp_hw_init(void *handle) ret = adev->powerplay.ip_funcs->hw_init( adev->powerplay.pp_handle); - if (amdgpu_dpm != 0) + if ((amdgpu_dpm != 0) && !amdgpu_sriov_vf(adev)) adev->pm.dpm_enabled = true; return ret; diff --git a/drivers/gpu/drm/amd/powerplay/amd_powerplay.c b/drivers/gpu/drm/amd/powerplay/amd_powerplay.c index 4a4f97b37dcb..51a36077b993 100644 --- a/drivers/gpu/drm/amd/powerplay/amd_powerplay.c +++ b/drivers/gpu/drm/amd/powerplay/amd_powerplay.c @@ -911,7 +911,8 @@ static int amd_pp_instance_init(struct amd_pp_init *pp_init, amd_pp->pp_handle = handle; - if (amdgpu_dpm == 0) + if ((amdgpu_dpm == 0) + || cgs_is_virtualization_enabled(pp_init->device)) return 0; ret = hwmgr_init(pp_init, handle); @@ -940,7 +941,8 @@ static int amd_pp_instance_fini(void *handle) if (instance == NULL) return -EINVAL; - if (amdgpu_dpm != 0) { + if ((amdgpu_dpm != 0) + && !cgs_is_virtualization_enabled(instance->smu_mgr->device)) { eventmgr_fini(instance->eventmgr); hwmgr_fini(instance->hwmgr); } @@ -1004,7 +1006,8 @@ int amd_powerplay_reset(void *handle) hw_init_power_state_table(instance->hwmgr); - if (amdgpu_dpm == 0) + if ((amdgpu_dpm == 0) + || cgs_is_virtualization_enabled(instance->smu_mgr->device)) return 0; if (eventmgr == NULL || eventmgr->pp_eventmgr_init == NULL) -- 2.45.2