diff options
author | Trigger Huang <trigger.huang@amd.com> | 2016-11-16 10:13:45 -0500 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2016-11-23 15:08:46 -0500 |
commit | 7b1e8cad1f3612d8059e1dfd870f4928a68691fa (patch) | |
tree | 3e87c28780490274a05523aaadded8a6754fadae | |
parent | 617859e0766fae595f08f1025c1a7df6246a5f5b (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.c | 2 | ||||
-rw-r--r-- | 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) | |||
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) |