drm/amd/powerplay: enable/disable gfxoff through smu

Signed-off-by: Huang Rui <ray.huang@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Huang Rui 2018-03-02 15:18:54 +08:00 committed by Alex Deucher
parent 9c82214160
commit 775b0c11e2

View File

@ -222,10 +222,19 @@ static int pp_set_powergating_state(void *handle,
{ {
struct amdgpu_device *adev = handle; struct amdgpu_device *adev = handle;
struct pp_hwmgr *hwmgr = adev->powerplay.pp_handle; struct pp_hwmgr *hwmgr = adev->powerplay.pp_handle;
int ret;
if (!hwmgr || !hwmgr->pm_en) if (!hwmgr || !hwmgr->pm_en)
return 0; return 0;
if (hwmgr->hwmgr_func->gfx_off_control) {
/* Enable/disable GFX off through SMU */
ret = hwmgr->hwmgr_func->gfx_off_control(hwmgr,
state == AMD_PG_STATE_GATE);
if (ret)
pr_err("gfx off control failed!\n");
}
if (hwmgr->hwmgr_func->enable_per_cu_power_gating == NULL) { if (hwmgr->hwmgr_func->enable_per_cu_power_gating == NULL) {
pr_info("%s was not implemented.\n", __func__); pr_info("%s was not implemented.\n", __func__);
return 0; return 0;