> -----Original Message-----
> From: amd-gfx [mailto:[email protected]] On Behalf
> Of Rex Zhu
> Sent: Thursday, May 04, 2017 8:03 AM
> To: [email protected]
> Cc: Zhu, Rex
> Subject: [PATCH 5/5] drm/amd/powerplay: add manual/auto fan control
> mode switch on vega10.
> 
> Signed-off-by: Rex Zhu <[email protected]>

Series is:
Reviewed-by: Alex Deucher <[email protected]>

> 
> Change-Id: I3d3e06e2cb503d53ec57612b1866a83d448b5b60
> ---
>  drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c | 23
> +++++++++++++---------
>  .../gpu/drm/amd/powerplay/hwmgr/vega10_thermal.h   |  1 +
>  2 files changed, 15 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> index 85a6c12..f5ee311 100644
> --- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> @@ -3921,22 +3921,27 @@ static int vega10_dpm_force_dpm_level(struct
> pp_hwmgr *hwmgr,
> 
>  static int vega10_set_fan_control_mode(struct pp_hwmgr *hwmgr,
> uint32_t mode)
>  {
> -     if (mode) {
> -             /* stop auto-manage */
> -             if (phm_cap_enabled(hwmgr-
> >platform_descriptor.platformCaps,
> +     int result;
> +
> +     if (phm_cap_enabled(hwmgr->platform_descriptor.platformCaps,
>                               PHM_PlatformCaps_MicrocodeFanControl))
> -                     vega10_fan_ctrl_stop_smc_fan_control(hwmgr);
> -             vega10_fan_ctrl_set_static_mode(hwmgr, mode);
> -     } else
> -             /* restart auto-manage */
> -             vega10_fan_ctrl_reset_fan_speed_to_default(hwmgr);
> +             vega10_fan_ctrl_stop_smc_fan_control(hwmgr);
> 
> -     return 0;
> +     if (mode) {
> +             result = vega10_fan_ctrl_set_static_mode(hwmgr, mode);
> +             if (!result)
> +                     result =
> vega10_fan_ctrl_start_smc_fan_control(hwmgr);
> +     }
> +     return result;
>  }
> 
>  static int vega10_get_fan_control_mode(struct pp_hwmgr *hwmgr)
>  {
>       uint32_t reg;
> +     struct vega10_hwmgr *data = (struct vega10_hwmgr *)(hwmgr-
> >backend);
> +
> +     if (data->smu_features[GNLD_FAN_CONTROL].enabled == false)
> +             return 0;
> 
>       if (hwmgr->fan_ctrl_is_in_default_mode) {
>               return hwmgr->fan_ctrl_default_mode;
> diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.h
> b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.h
> index 70c1d22..776f3a2 100644
> --- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.h
> +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.h
> @@ -79,6 +79,7 @@ extern int vega10_fan_ctrl_get_fan_speed_rpm(struct
> pp_hwmgr *hwmgr,
>  extern int vega10_fan_ctrl_stop_smc_fan_control(struct pp_hwmgr
> *hwmgr);
>  extern uint32_t smu7_get_xclk(struct pp_hwmgr *hwmgr);
>  extern int vega10_thermal_disable_alert(struct pp_hwmgr *hwmgr);
> +int vega10_fan_ctrl_start_smc_fan_control(struct pp_hwmgr *hwmgr);
> 
>  #endif
> 
> --
> 1.9.1
> 
> _______________________________________________
> amd-gfx mailing list
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to