Reviewed-by: Evan Quan <[email protected]> > -----Original Message----- > From: Liang, Prike <[email protected]> > Sent: 2019年9月9日 13:22 > To: [email protected] > Cc: Quan, Evan <[email protected]>; Feng, Kenneth > <[email protected]>; Huang, Ray <[email protected]>; Liu, Aaron > <[email protected]>; Liang, Prike <[email protected]> > Subject: [PATCH] drm/amd/powerplay: Add the interface for geting dpm > current power state > > implement the sysfs power_dpm_state > > Signed-off-by: Prike Liang <[email protected]> > --- > drivers/gpu/drm/amd/powerplay/renoir_ppt.c | 34 > ++++++++++++++++++++++++++++++ > 1 file changed, 34 insertions(+) > > diff --git a/drivers/gpu/drm/amd/powerplay/renoir_ppt.c > b/drivers/gpu/drm/amd/powerplay/renoir_ppt.c > index a5cf846..2c22ba4 100644 > --- a/drivers/gpu/drm/amd/powerplay/renoir_ppt.c > +++ b/drivers/gpu/drm/amd/powerplay/renoir_ppt.c > @@ -246,6 +246,38 @@ static int renoir_print_clk_levels(struct smu_context > *smu, > return size; > } > > +static enum amd_pm_state_type renoir_get_current_power_state(struct > +smu_context *smu) { > + enum amd_pm_state_type pm_type; > + struct smu_dpm_context *smu_dpm_ctx = &(smu->smu_dpm); > + > + if (!smu_dpm_ctx->dpm_context || > + !smu_dpm_ctx->dpm_current_power_state) > + return -EINVAL; > + > + mutex_lock(&(smu->mutex)); > + switch (smu_dpm_ctx->dpm_current_power_state- > >classification.ui_label) { > + case SMU_STATE_UI_LABEL_BATTERY: > + pm_type = POWER_STATE_TYPE_BATTERY; > + break; > + case SMU_STATE_UI_LABEL_BALLANCED: > + pm_type = POWER_STATE_TYPE_BALANCED; > + break; > + case SMU_STATE_UI_LABEL_PERFORMANCE: > + pm_type = POWER_STATE_TYPE_PERFORMANCE; > + break; > + default: > + if (smu_dpm_ctx->dpm_current_power_state- > >classification.flags & SMU_STATE_CLASSIFICATION_FLAG_BOOT) > + pm_type = POWER_STATE_TYPE_INTERNAL_BOOT; > + else > + pm_type = POWER_STATE_TYPE_DEFAULT; > + break; > + } > + mutex_unlock(&(smu->mutex)); > + > + return pm_type; > +} > + > static const struct pptable_funcs renoir_ppt_funcs = { > .get_smu_msg_index = renoir_get_smu_msg_index, > .get_smu_table_index = renoir_get_smu_table_index, @@ -253,6 > +285,8 @@ static const struct pptable_funcs renoir_ppt_funcs = { > .set_power_state = NULL, > .get_dpm_uclk_limited = renoir_get_dpm_uclk_limited, > .print_clk_levels = renoir_print_clk_levels, > + .get_current_power_state = renoir_get_current_power_state, > + > }; > > void renoir_set_ppt_funcs(struct smu_context *smu) > -- > 2.7.4
_______________________________________________ amd-gfx mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/amd-gfx
