[PATCH 08/26] drm/amd/powerplay: implement fan1_enable hwmon interface for SMU11 (v2)

Alex Deucher alexdeucher at gmail.com
Tue Feb 26 03:59:49 UTC 2019


On Mon, Feb 25, 2019 at 7:13 AM Huang Rui <ray.huang at amd.com> wrote:
>
> From: Chengming Gui <Jack.Gui at amd.com>
>
> set the fan1_enable hwmon interface to call
> smu_get_fan_control_mode and smu_set_fan_control_mode.
>
> v2: fix print value.
>
> Signed-off-by: Chengming Gui <Jack.Gui at amd.com>
> Reviewed-by: Huang Rui <ray.huang at amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c    | 23 +++++++++++++++--------
>  drivers/gpu/drm/amd/powerplay/smu_v11_0.c |  2 +-
>  2 files changed, 16 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
> index ac991f9..9413c39 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
> @@ -1635,12 +1635,15 @@ static ssize_t amdgpu_hwmon_get_fan1_enable(struct device *dev,
>         struct amdgpu_device *adev = dev_get_drvdata(dev);
>         u32 pwm_mode = 0;
>
> -       if (!adev->powerplay.pp_funcs->get_fan_control_mode)
> -               return -EINVAL;
> -
> -       pwm_mode = amdgpu_dpm_get_fan_control_mode(adev);
> +       if (is_support_sw_smu(adev)) {
> +               pwm_mode = smu_get_fan_control_mode(&adev->smu);
> +       } else {
> +               if (!adev->powerplay.pp_funcs->get_fan_control_mode)
> +                       return -EINVAL;
>
> -       return sprintf(buf, "%i\n", pwm_mode == AMD_FAN_CTRL_AUTO ? 0 : 1);
> +               pwm_mode = amdgpu_dpm_get_fan_control_mode(adev);
> +       }
> +               return sprintf(buf, "%i\n", pwm_mode == AMD_FAN_CTRL_AUTO ? 0 : 1);

indentation looks wrong here.
With that fixed:
Reviewed-by: Alex Deucher <alexander.deucher at amd.com>


>  }
>
>  static ssize_t amdgpu_hwmon_set_fan1_enable(struct device *dev,
> @@ -1658,8 +1661,6 @@ static ssize_t amdgpu_hwmon_set_fan1_enable(struct device *dev,
>              (adev->ddev->switch_power_state != DRM_SWITCH_POWER_ON))
>                 return -EINVAL;
>
> -       if (!adev->powerplay.pp_funcs->set_fan_control_mode)
> -               return -EINVAL;
>
>         err = kstrtoint(buf, 10, &value);
>         if (err)
> @@ -1672,7 +1673,13 @@ static ssize_t amdgpu_hwmon_set_fan1_enable(struct device *dev,
>         else
>                 return -EINVAL;
>
> -       amdgpu_dpm_set_fan_control_mode(adev, pwm_mode);
> +       if (is_support_sw_smu(adev)) {
> +               smu_set_fan_control_mode(&adev->smu, pwm_mode);
> +       } else {
> +               if (!adev->powerplay.pp_funcs->set_fan_control_mode)
> +                       return -EINVAL;
> +               amdgpu_dpm_set_fan_control_mode(adev, pwm_mode);
> +       }
>
>         return count;
>  }
> diff --git a/drivers/gpu/drm/amd/powerplay/smu_v11_0.c b/drivers/gpu/drm/amd/powerplay/smu_v11_0.c
> index aaa1bd8..c0bc4f4 100644
> --- a/drivers/gpu/drm/amd/powerplay/smu_v11_0.c
> +++ b/drivers/gpu/drm/amd/powerplay/smu_v11_0.c
> @@ -1856,7 +1856,7 @@ smu_v11_0_set_fan_control_mode(struct smu_context *smu,
>         }
>
>         if (ret) {
> -               pr_err("[%s]Set fan control mode failed!");
> +               pr_err("[%s]Set fan control mode failed!", __func__);
>                 return -EINVAL;
>         }
>
> --
> 2.7.4
>
> _______________________________________________
> 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