[PATCH] drm/amd/powerplay: wrong control mode cause the fan spins faster unnecessarily

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Nov 1, 2017 at 5:24 AM, Evan Quan <evan.quan at amd.com> wrote:
> The fan control mode can either be FDO_PWM_MODE_STATIC or FDO_PWM_MODE_STATIC_RPM.
> Setting it as AMD_FAN_CTRL_AUTO will cause the fan spin faster wrongly.
>
> This can be reproduced by:
> '# cat /sys/class/hwmon/hwmon0/pwm1
>    38
> '# cat /sys/class/hwmon/hwmon0/pwm1_enable
>    2
> '# echo "2" > /sys/class/hwmon/hwmon0/pwm1_enable
> '# cat /sys/class/hwmon/hwmon0/pwm1
>    122
> The fan speed get faster wronly even with its original mode echo back.
>
> Change-Id: I51b0586ac17e0d663925c87d548847b31c79d68a
> Signed-off-by: Evan Quan <evan.quan at amd.com>

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

> ---
>  drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> index 203ef10..4239b98 100644
> --- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> @@ -4234,7 +4234,7 @@ static void vega10_set_fan_control_mode(struct pp_hwmgr *hwmgr, uint32_t mode)
>                         vega10_fan_ctrl_stop_smc_fan_control(hwmgr);
>                 break;
>         case AMD_FAN_CTRL_AUTO:
> -               if (!vega10_fan_ctrl_set_static_mode(hwmgr, mode))
> +               if (PP_CAP(PHM_PlatformCaps_MicrocodeFanControl))
>                         vega10_fan_ctrl_start_smc_fan_control(hwmgr);
>                 break;
>         default:
> --
> 2.7.4
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux