Re: [PATCH] ACPI/device_sysfs: Add sysfs support for _HRV hardware revision

From: Rafael J. Wysocki
Date: Wed Apr 27 2016 - 17:18:40 EST


On Wednesday, April 27, 2016 04:19:45 PM Dall, Betty wrote:
> On 04/26/2016 02:39 PM, Rafael J. Wysocki wrote:
> > On Wednesday, April 13, 2016 08:48:14 AM Betty Dall wrote:
> >> The ACPI _HRV object on the device is used to supply Linux with
> >> the device's hardware revision. This is an optional object. Add
> >> sysfs support for the _HRV object if it exists on the device.
> >>
> >> Signed-off-by: Betty Dall <betty.dall@xxxxxxx>
> >> ---
> >> drivers/acpi/device_sysfs.c | 24 ++++++++++++++++++++++++
> >> 1 file changed, 24 insertions(+)
> >>
> >> diff --git a/drivers/acpi/device_sysfs.c b/drivers/acpi/device_sysfs.c
> >> index b9afb47..bf12dbe 100644
> >> --- a/drivers/acpi/device_sysfs.c
> >> +++ b/drivers/acpi/device_sysfs.c
> >> @@ -473,6 +473,21 @@ acpi_device_sun_show(struct device *dev, struct device_attribute *attr,
> >> }
> >> static DEVICE_ATTR(sun, 0444, acpi_device_sun_show, NULL);
> >>
> >> +static ssize_t
> >> +acpi_device_hrv_show(struct device *dev, struct device_attribute *attr,
> >> + char *buf) {
> >> + struct acpi_device *acpi_dev = to_acpi_device(dev);
> >> + acpi_status status;
> >> + unsigned long long hrv;
> >> +
> >> + status = acpi_evaluate_integer(acpi_dev->handle, "_HRV", NULL, &hrv);
> >> + if (ACPI_FAILURE(status))
> >> + return -ENODEV;
> >
> > Actually, this should be -EIO I think.
> >
> > Thanks,
> > Rafael
>
> Hi Rafael,
>
> I picked -ENODEV because the _SUN and _STA show functions use -ENODEV
> for a return value when the acpi_evaluate_integer() fails.

Which isn't the best choice.

> I checked in the sysfs code what the return value is used for and any
> negative value is treated the same, that is, the sysfs code is not
> looking specifically for -EIO.

But doesn't it pass the return value up the call chain?

> Do you still want me to change it to -EIO?

I may, depending on the answer to the question above.

Thanks,
Rafael