> that we will not try to gate them(enable dpm for now). Sorry, there seems a typo in the description(enable -> disable). I will send out another patch with this typo addressed. Regards, Evan > -----Original Message----- > From: Evan Quan [mailto:evan.quan at amd.com] > Sent: Wednesday, June 20, 2018 2:09 PM > To: amd-gfx at lists.freedesktop.org > Cc: Quan, Evan <Evan.Quan at amd.com> > Subject: [PATCH] drm/amd/powerplay: initialize uvd/vce powergate status > v2 > > On UVD/VCE dpm disabled, the powergate status should be set as true. So > that we will not try to gate them(enable dpm for now). > > v2: added check for uvd/vce powergate status before gating > > Change-Id: I569a5aa216b5e7d64a2b504f2ff98cc83ca802d5 > Signed-off-by: Evan Quan <evan.quan at amd.com> > --- > drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.c | 23 > ++++++++++++++++++++++ > 1 file changed, 23 insertions(+) > > diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.c > b/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.c > index 45c8f2d..28b172e 100644 > --- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.c > +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.c > @@ -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 0; > + > 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 0; > + > data->uvd_power_gated = bgate; > vega12_enable_disable_uvd_dpm(hwmgr, !bgate); } > -- > 2.7.4