Am 17.11.2016 um 06:59 schrieb Trigger Huang: > 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.") > > Change in V2, according to Christian's suggestion, > This patch will not mess with module parameters amdgpu_dpm, but make > that a dependency for when amdgpu_dpm is evaluated. > > Signed-off-by: Trigger Huang <trigger.huang at amd.com> Reviewed-by: Christian König <christian.koenig at amd.com>. > --- > 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 e2f0507..fc592c2 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 4a4f97b..51a3607 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)