[PATCH 1/3] drm/amd/powerplay: set a default fclk/gfxclk ratio

Alex Deucher alexdeucher at gmail.com
Wed Nov 7 14:34:15 UTC 2018


On Tue, Nov 6, 2018 at 8:42 PM Xu, Feifei <Feifei.Xu at amd.com> wrote:
>
> Seriel is reviewed-by: Feifei Xu <Feifei.Xu at amd.com>
>
> -----Original Message-----
> From: amd-gfx <amd-gfx-bounces at lists.freedesktop.org> On Behalf Of Evan Quan
> Sent: Wednesday, November 7, 2018 9:38 AM
> To: amd-gfx at lists.freedesktop.org
> Cc: Quan, Evan <Evan.Quan at amd.com>
> Subject: [PATCH 1/3] drm/amd/powerplay: set a default fclk/gfxclk ratio
>
> Otherwise big gap between these two clocks may causes some hangs.
>
> Change-Id: Ifa3fafe2ee619d6231d5ecab61d3c68faa34abb6
> Signed-off-by: Evan Quan <evan.quan at amd.com>

Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

> ---
>  .../gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c   | 16 ++++++++++++++++
>  .../gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.h   |  1 +
>  drivers/gpu/drm/amd/powerplay/inc/vega20_ppsmc.h |  3 ++-
>  3 files changed, 19 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c
> index d2da9e3fc827..4f0f444fd111 100644
> --- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c
> +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c
> @@ -120,6 +120,7 @@ static void vega20_set_default_registry_data(struct pp_hwmgr *hwmgr)
>         data->registry_data.disable_auto_wattman = 1;
>         data->registry_data.auto_wattman_debug = 0;
>         data->registry_data.auto_wattman_sample_period = 100;
> +       data->registry_data.fclk_gfxclk_ratio = 0x3F6CCCCD;
>         data->registry_data.auto_wattman_threshold = 50;
>         data->registry_data.gfxoff_controlled_by_driver = 1;
>         data->gfxoff_allowed = false;
> @@ -829,6 +830,16 @@ static int vega20_enable_all_smu_features(struct pp_hwmgr *hwmgr)
>         return 0;
>  }
>
> +static int vega20_send_clock_ratio(struct pp_hwmgr *hwmgr) {
> +       struct vega20_hwmgr *data =
> +                       (struct vega20_hwmgr *)(hwmgr->backend);
> +
> +       return smum_send_msg_to_smc_with_parameter(hwmgr,
> +                       PPSMC_MSG_SetFclkGfxClkRatio,
> +                       data->registry_data.fclk_gfxclk_ratio);
> +}
> +
>  static int vega20_disable_all_smu_features(struct pp_hwmgr *hwmgr)  {
>         struct vega20_hwmgr *data =
> @@ -1535,6 +1546,11 @@ static int vega20_enable_dpm_tasks(struct pp_hwmgr *hwmgr)
>                         "[EnableDPMTasks] Failed to enable all smu features!",
>                         return result);
>
> +       result = vega20_send_clock_ratio(hwmgr);
> +       PP_ASSERT_WITH_CODE(!result,
> +                       "[EnableDPMTasks] Failed to send clock ratio!",
> +                       return result);
> +
>         /* Initialize UVD/VCE powergating state */
>         vega20_init_powergate_state(hwmgr);
>
> diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.h b/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.h
> index 56fe6a0d42e8..25faaa5c5b10 100644
> --- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.h
> +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.h
> @@ -328,6 +328,7 @@ struct vega20_registry_data {
>         uint8_t   disable_auto_wattman;
>         uint32_t  auto_wattman_debug;
>         uint32_t  auto_wattman_sample_period;
> +       uint32_t  fclk_gfxclk_ratio;
>         uint8_t   auto_wattman_threshold;
>         uint8_t   log_avfs_param;
>         uint8_t   enable_enginess;
> diff --git a/drivers/gpu/drm/amd/powerplay/inc/vega20_ppsmc.h b/drivers/gpu/drm/amd/powerplay/inc/vega20_ppsmc.h
> index 45d64a81e945..4f63a736ea0e 100644
> --- a/drivers/gpu/drm/amd/powerplay/inc/vega20_ppsmc.h
> +++ b/drivers/gpu/drm/amd/powerplay/inc/vega20_ppsmc.h
> @@ -105,7 +105,8 @@
>  #define PPSMC_MSG_SetSystemVirtualDramAddrHigh   0x4B
>  #define PPSMC_MSG_SetSystemVirtualDramAddrLow    0x4C
>  #define PPSMC_MSG_WaflTest                       0x4D
> -// Unused ID 0x4E to 0x50
> +#define PPSMC_MSG_SetFclkGfxClkRatio             0x4E
> +// Unused ID 0x4F to 0x50
>  #define PPSMC_MSG_AllowGfxOff                    0x51
>  #define PPSMC_MSG_DisallowGfxOff                 0x52
>  #define PPSMC_MSG_GetPptLimit                    0x53
> --
> 2.19.1
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
> _______________________________________________
> 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