On Mon, Jan 24, 2022 at 02:43:41PM +0800, Yu, Lang wrote: > Some clients(e.g., kfd) query sclk/mclk through this function. > > Before this patch: > # /opt/rocm/opencl/bin/clinfo > > Max clock frequency: 0Mhz > > After this patch: > # /opt/rocm/opencl/bin/clinfo > > Max clock frequency: 1500Mhz > > Signed-off-by: Lang Yu <Lang.Yu@xxxxxxx> > --- > drivers/gpu/drm/amd/pm/swsmu/smu11/cyan_skillfish_ppt.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/cyan_skillfish_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu11/cyan_skillfish_ppt.c > index 2238ee19c222..665905a568eb 100644 > --- a/drivers/gpu/drm/amd/pm/swsmu/smu11/cyan_skillfish_ppt.c > +++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/cyan_skillfish_ppt.c > @@ -552,6 +552,14 @@ static int cyan_skillfish_od_edit_dpm_table(struct smu_context *smu, > return ret; > } > > +static int cyan_skillfish_get_dpm_ultimate_freq(struct smu_context *smu, > + enum smu_clk_type clk_type, > + uint32_t *min, > + uint32_t *max) > +{ We need to add comment here to explain in Cyan Skillfish, the clock is constant and not changed. So here, min = max = current clock. With that updated, patch is Reviewed-by: Huang Rui <ray.huang@xxxxxxx> > + return cyan_skillfish_get_current_clk_freq(smu, clk_type, min ? min : max); > +} > + > static const struct pptable_funcs cyan_skillfish_ppt_funcs = { > > .check_fw_status = smu_v11_0_check_fw_status, > @@ -565,6 +573,7 @@ static const struct pptable_funcs cyan_skillfish_ppt_funcs = { > .is_dpm_running = cyan_skillfish_is_dpm_running, > .get_gpu_metrics = cyan_skillfish_get_gpu_metrics, > .od_edit_dpm_table = cyan_skillfish_od_edit_dpm_table, > + .get_dpm_ultimate_freq = cyan_skillfish_get_dpm_ultimate_freq, > .register_irq_handler = smu_v11_0_register_irq_handler, > .notify_memory_pool_location = smu_v11_0_notify_memory_pool_location, > .send_smc_msg_with_param = smu_cmn_send_smc_msg_with_param, > -- > 2.25.1 >