[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