aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTrigger Huang <trigger.huang@amd.com>2016-11-16 10:13:45 -0500
committerAlex Deucher <alexander.deucher@amd.com>2016-11-23 15:08:46 -0500
commit7b1e8cad1f3612d8059e1dfd870f4928a68691fa (patch)
tree3e87c28780490274a05523aaadded8a6754fadae
parent617859e0766fae595f08f1025c1a7df6246a5f5b (diff)
drm/amdgpu: Disable DPM in virtualization
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 <trigger.huang@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c2
-rw-r--r--drivers/gpu/drm/amd/powerplay/amd_powerplay.c9
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)
184 ret = adev->powerplay.ip_funcs->hw_init( 184 ret = adev->powerplay.ip_funcs->hw_init(
185 adev->powerplay.pp_handle); 185 adev->powerplay.pp_handle);
186 186
187 if (amdgpu_dpm != 0) 187 if ((amdgpu_dpm != 0) && !amdgpu_sriov_vf(adev))
188 adev->pm.dpm_enabled = true; 188 adev->pm.dpm_enabled = true;
189 189
190 return ret; 190 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,
911 911
912 amd_pp->pp_handle = handle; 912 amd_pp->pp_handle = handle;
913 913
914 if (amdgpu_dpm == 0) 914 if ((amdgpu_dpm == 0)
915 || cgs_is_virtualization_enabled(pp_init->device))
915 return 0; 916 return 0;
916 917
917 ret = hwmgr_init(pp_init, handle); 918 ret = hwmgr_init(pp_init, handle);
@@ -940,7 +941,8 @@ static int amd_pp_instance_fini(void *handle)
940 if (instance == NULL) 941 if (instance == NULL)
941 return -EINVAL; 942 return -EINVAL;
942 943
943 if (amdgpu_dpm != 0) { 944 if ((amdgpu_dpm != 0)
945 && !cgs_is_virtualization_enabled(instance->smu_mgr->device)) {
944 eventmgr_fini(instance->eventmgr); 946 eventmgr_fini(instance->eventmgr);
945 hwmgr_fini(instance->hwmgr); 947 hwmgr_fini(instance->hwmgr);
946 } 948 }
@@ -1004,7 +1006,8 @@ int amd_powerplay_reset(void *handle)
1004 1006
1005 hw_init_power_state_table(instance->hwmgr); 1007 hw_init_power_state_table(instance->hwmgr);
1006 1008
1007 if (amdgpu_dpm == 0) 1009 if ((amdgpu_dpm == 0)
1010 || cgs_is_virtualization_enabled(instance->smu_mgr->device))
1008 return 0; 1011 return 0;
1009 1012
1010 if (eventmgr == NULL || eventmgr->pp_eventmgr_init == NULL) 1013 if (eventmgr == NULL || eventmgr->pp_eventmgr_init == NULL)