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