Re: [PATCH 1/2] drm/radeon: Add sclk frequency as hwmon sensor

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

 



On Sun, Aug 30, 2020 at 3:25 AM Sandeep Raghuraman <sandy.8925@xxxxxxxxx> wrote:
>
> This patch series adds support for reporting sclk and vddc values for Radeon GPUs, where supported.

This commit message should be specific to this particular patch rather
than the series.  You could probably expose mclk as well.

Alex


>
> Signed-off-by: Sandeep Raghuraman <sandy.8925@xxxxxxxxx>
> ---
>  drivers/gpu/drm/radeon/radeon_pm.c | 29 ++++++++++++++++++++++++++++-
>  1 file changed, 28 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/radeon/radeon_pm.c b/drivers/gpu/drm/radeon/radeon_pm.c
> index 8c5d6fda0d75..05c4196a8212 100644
> --- a/drivers/gpu/drm/radeon/radeon_pm.c
> +++ b/drivers/gpu/drm/radeon/radeon_pm.c
> @@ -712,6 +712,31 @@ static SENSOR_DEVICE_ATTR(pwm1_enable, S_IRUGO | S_IWUSR, radeon_hwmon_get_pwm1_
>  static SENSOR_DEVICE_ATTR(pwm1_min, S_IRUGO, radeon_hwmon_get_pwm1_min, NULL, 0);
>  static SENSOR_DEVICE_ATTR(pwm1_max, S_IRUGO, radeon_hwmon_get_pwm1_max, NULL, 0);
>
> +static ssize_t radeon_hwmon_show_sclk(struct device *dev,
> +                                     struct device_attribute *attr, char *buf)
> +{
> +       struct radeon_device *rdev = dev_get_drvdata(dev);
> +       struct drm_device *ddev = rdev->ddev;
> +       u32 sclk = 0;
> +
> +       /* Can't get clock frequency when the card is off */
> +       if ((rdev->flags & RADEON_IS_PX) &&
> +           (ddev->switch_power_state != DRM_SWITCH_POWER_ON))
> +               return -EINVAL;
> +
> +       if (rdev->asic->dpm.get_current_sclk)
> +               sclk = radeon_dpm_get_current_sclk(rdev);
> +
> +       /* Value returned by dpm is in 10 KHz units, need to convert it into Hz
> +          for hwmon */
> +       sclk *= 10000;
> +
> +       return snprintf(buf, PAGE_SIZE, "%u\n", sclk);
> +}
> +
> +static SENSOR_DEVICE_ATTR(freq1_input, S_IRUGO, radeon_hwmon_show_sclk, NULL,
> +                         0);
> +
>
>  static struct attribute *hwmon_attributes[] = {
>         &sensor_dev_attr_temp1_input.dev_attr.attr,
> @@ -721,6 +746,7 @@ static struct attribute *hwmon_attributes[] = {
>         &sensor_dev_attr_pwm1_enable.dev_attr.attr,
>         &sensor_dev_attr_pwm1_min.dev_attr.attr,
>         &sensor_dev_attr_pwm1_max.dev_attr.attr,
> +       &sensor_dev_attr_freq1_input.dev_attr.attr,
>         NULL
>  };
>
> @@ -738,7 +764,8 @@ static umode_t hwmon_attributes_visible(struct kobject *kobj,
>              attr == &sensor_dev_attr_pwm1.dev_attr.attr ||
>              attr == &sensor_dev_attr_pwm1_enable.dev_attr.attr ||
>              attr == &sensor_dev_attr_pwm1_max.dev_attr.attr ||
> -            attr == &sensor_dev_attr_pwm1_min.dev_attr.attr))
> +            attr == &sensor_dev_attr_pwm1_min.dev_attr.attr ||
> +            attr == &sensor_dev_attr_freq1_input.dev_attr.attr))
>                 return 0;
>
>         /* Skip fan attributes if fan is not present */
> --
> _______________________________________________
> dri-devel mailing list
> dri-devel@xxxxxxxxxxxxxxxxxxxxx
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel



[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux