mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-05 06:05:06 +00:00
drm/amd/powerplay: initialize uvd/vce powergate status v4
On UVD/VCE dpm enabled/disabled, the powergate status will be set as false/true. So that we will not try to ungate/gate them( enable/disable their dpm) again. v2: added check for uvd/vce powergate status before gating v3: fix typo in description v4: warning fix (Alex) Signed-off-by: Evan Quan <evan.quan@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
8fd2636170
commit
f74aa69d0a
1 changed files with 23 additions and 0 deletions
|
@ -777,6 +777,21 @@ static int vega12_set_allowed_featuresmask(struct pp_hwmgr *hwmgr)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void vega12_init_powergate_state(struct pp_hwmgr *hwmgr)
|
||||
{
|
||||
struct vega12_hwmgr *data =
|
||||
(struct vega12_hwmgr *)(hwmgr->backend);
|
||||
|
||||
data->uvd_power_gated = true;
|
||||
data->vce_power_gated = true;
|
||||
|
||||
if (data->smu_features[GNLD_DPM_UVD].enabled)
|
||||
data->uvd_power_gated = false;
|
||||
|
||||
if (data->smu_features[GNLD_DPM_VCE].enabled)
|
||||
data->vce_power_gated = false;
|
||||
}
|
||||
|
||||
static int vega12_enable_all_smu_features(struct pp_hwmgr *hwmgr)
|
||||
{
|
||||
struct vega12_hwmgr *data =
|
||||
|
@ -801,6 +816,8 @@ static int vega12_enable_all_smu_features(struct pp_hwmgr *hwmgr)
|
|||
}
|
||||
}
|
||||
|
||||
vega12_init_powergate_state(hwmgr);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1985,6 +2002,9 @@ static void vega12_power_gate_vce(struct pp_hwmgr *hwmgr, bool bgate)
|
|||
{
|
||||
struct vega12_hwmgr *data = (struct vega12_hwmgr *)(hwmgr->backend);
|
||||
|
||||
if (data->vce_power_gated == bgate)
|
||||
return;
|
||||
|
||||
data->vce_power_gated = bgate;
|
||||
vega12_enable_disable_vce_dpm(hwmgr, !bgate);
|
||||
}
|
||||
|
@ -1993,6 +2013,9 @@ static void vega12_power_gate_uvd(struct pp_hwmgr *hwmgr, bool bgate)
|
|||
{
|
||||
struct vega12_hwmgr *data = (struct vega12_hwmgr *)(hwmgr->backend);
|
||||
|
||||
if (data->uvd_power_gated == bgate)
|
||||
return;
|
||||
|
||||
data->uvd_power_gated = bgate;
|
||||
vega12_enable_disable_uvd_dpm(hwmgr, !bgate);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue