[PATCH 5/5] drm/amd/powerplay: add manual/auto fan control mode switch on vega10.
Deucher, Alexander
Alexander.Deucher at amd.com
Thu May 4 15:10:31 UTC 2017
> -----Original Message-----
> From: amd-gfx [mailto:amd-gfx-bounces at lists.freedesktop.org] On Behalf
> Of Rex Zhu
> Sent: Thursday, May 04, 2017 8:03 AM
> To: amd-gfx at lists.freedesktop.org
> Cc: Zhu, Rex
> Subject: [PATCH 5/5] drm/amd/powerplay: add manual/auto fan control
> mode switch on vega10.
>
> Signed-off-by: Rex Zhu <Rex.Zhu at amd.com>
Series is:
Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
>
> 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
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
More information about the amd-gfx
mailing list