[PATCH] drm/amd/pp: Fix OD feature enable failed on Vega10 workstation cards
Quan, Evan
Evan.Quan at amd.com
Tue Jun 12 09:13:35 UTC 2018
> But on workstation, vbios do not support OD featur, the OD max memory
With typo "featur" fixed, Reviewed-by: Evan Quan <evan.quan at amd.com>
> -----Original Message-----
> From: amd-gfx [mailto:amd-gfx-bounces at lists.freedesktop.org] On Behalf
> Of Rex Zhu
> Sent: Tuesday, June 12, 2018 3:09 PM
> To: amd-gfx at lists.freedesktop.org
> Cc: Zhu, Rex <Rex.Zhu at amd.com>
> Subject: [PATCH] drm/amd/pp: Fix OD feature enable failed on Vega10
> workstation cards
>
> As hw required, soc clock must large than mclk, So we set max soc clock to
> OD Max Memory clk.
> But on workstation, vbios do not support OD featur, the OD max memory
> clock is equal to 0. In this case, driver can support underclocking.
> and set od max memory clock to the value in highest memory dpm level.
> So the od max memory clock should be less than highest soc clock.
> and driver should not change the soc clock.
>
> caused by commit ca57b9b0a156
> ("drm/amd/pp: Allow underclocking when od table is empty in vbios")
>
> Signed-off-by: Rex Zhu <Rex.Zhu at amd.com>
> ---
> drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c | 9 +++++++--
> 1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> index 932ea8c..7355144 100644
> --- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> @@ -321,8 +321,12 @@ static int vega10_odn_initial_default_setting(struct
> pp_hwmgr *hwmgr)
> odn_table->min_vddc = dep_table[0]->entries[0].vddc;
>
> i = od_table[2]->count - 1;
> - od_table[2]->entries[i].clk = hwmgr-
> >platform_descriptor.overdriveLimit.memoryClock;
> - od_table[2]->entries[i].vddc = odn_table->max_vddc;
> + od_table[2]->entries[i].clk = hwmgr-
> >platform_descriptor.overdriveLimit.memoryClock > od_table[2]-
> >entries[i].clk ?
> + hwmgr-
> >platform_descriptor.overdriveLimit.memoryClock :
> + od_table[2]->entries[i].clk;
> + od_table[2]->entries[i].vddc = odn_table->max_vddc > od_table[2]-
> >entries[i].vddc ?
> + odn_table->max_vddc :
> + od_table[2]->entries[i].vddc;
>
> return 0;
> }
> @@ -1325,6 +1329,7 @@ static int vega10_setup_default_dpm_tables(struct
> pp_hwmgr *hwmgr)
> if (hwmgr->platform_descriptor.overdriveLimit.memoryClock == 0)
> hwmgr->platform_descriptor.overdriveLimit.memoryClock =
> dpm_table->dpm_levels[dpm_table-
> >count-1].value;
> +
> vega10_init_dpm_state(&(dpm_table->dpm_state));
>
> data->dpm_table.eclk_table.count = 0;
> --
> 1.9.1
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
More information about the amd-gfx
mailing list