Reviewed-by: Evan Quan <evan.q...@amd.com>

> -----Original Message-----
> From: amd-gfx <amd-gfx-boun...@lists.freedesktop.org> On Behalf Of
> Kenneth Feng
> Sent: 2019年1月21日 16:17
> To: amd-gfx@lists.freedesktop.org
> Cc: Feng, Kenneth <kenneth.f...@amd.com>
> Subject: [PATCH] drm/amd/powerplay: OD setting fix on Vega10
> 
> gfxclk for OD setting is limited to 1980M for non-acg ASICs of Vega10
> 
> Signed-off-by: Kenneth Feng <kenneth.f...@amd.com>
> ---
>  .../amd/powerplay/hwmgr/vega10_processpptables.c   | 22
> +++++++++++++++++++++-
>  1 file changed, 21 insertions(+), 1 deletion(-)
> 
> diff --git
> a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_processpptables.c
> b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_processpptables.c
> index b8747a5..99d596d 100644
> --- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_processpptables.c
> +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_processpptables.c
> @@ -32,6 +32,7 @@
>  #include "vega10_pptable.h"
> 
>  #define NUM_DSPCLK_LEVELS 8
> +#define VEGA10_ENGINECLOCK_HARDMAX 198000
> 
>  static void set_hw_cap(struct pp_hwmgr *hwmgr, bool enable,
>               enum phm_platform_caps cap)
> @@ -258,7 +259,26 @@ static int init_over_drive_limits(
>               struct pp_hwmgr *hwmgr,
>               const ATOM_Vega10_POWERPLAYTABLE *powerplay_table)
> {
> -     hwmgr->platform_descriptor.overdriveLimit.engineClock =
> +     const ATOM_Vega10_GFXCLK_Dependency_Table
> *gfxclk_dep_table =
> +                     (const ATOM_Vega10_GFXCLK_Dependency_Table *)
> +                     (((unsigned long) powerplay_table) +
> +                     le16_to_cpu(powerplay_table-
> >usGfxclkDependencyTableOffset));
> +     bool is_acg_enabled = false;
> +     ATOM_Vega10_GFXCLK_Dependency_Record_V2
> *patom_record_v2;
> +
> +     if (gfxclk_dep_table->ucRevId == 1) {
> +             patom_record_v2 =
> +                     (ATOM_Vega10_GFXCLK_Dependency_Record_V2
> *)gfxclk_dep_table->entries;
> +             is_acg_enabled =
> +                     (bool)patom_record_v2[gfxclk_dep_table-
> >ucNumEntries-1].ucACGEnable;
> +     }
> +
> +     if (powerplay_table->ulMaxODEngineClock >
> VEGA10_ENGINECLOCK_HARDMAX &&
> +             !is_acg_enabled)
> +             hwmgr->platform_descriptor.overdriveLimit.engineClock =
> +                     VEGA10_ENGINECLOCK_HARDMAX;
> +     else
> +             hwmgr->platform_descriptor.overdriveLimit.engineClock =
>                       le32_to_cpu(powerplay_table-
> >ulMaxODEngineClock);
>       hwmgr->platform_descriptor.overdriveLimit.memoryClock =
>                       le32_to_cpu(powerplay_table-
> >ulMaxODMemoryClock);
> --
> 2.7.4
> 
> _______________________________________________
> amd-gfx mailing list
> amd-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to