Message ID | 20221216-watchdog-sysfs-v2-1-6189311103a9@weissschuh.net (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | watchdog: report all watchdog_ident information via sysfs | expand |
On Mon, Dec 19, 2022 at 09:30:39PM +0000, Thomas Weißschuh wrote: > This synchronizes the information reported by ioctl and sysfs. > The mismatch is confusing because "wdctl" from util-linux uses the ioctl > when used with root privileges and sysfs without. > > The file is called "fw_version" instead of "firmware_version" as > "firmware_version" is already used as custom attribute by single drivers. > > Signed-off-by: Thomas Weißschuh <linux@weissschuh.net> Reviewed-by: Guenter Roeck <linux@roeck-us.net> > --- > Documentation/ABI/testing/sysfs-class-watchdog | 7 +++++++ > drivers/watchdog/watchdog_dev.c | 10 ++++++++++ > 2 files changed, 17 insertions(+) > > diff --git a/Documentation/ABI/testing/sysfs-class-watchdog b/Documentation/ABI/testing/sysfs-class-watchdog > index 585caecda3a5..27c000238fe4 100644 > --- a/Documentation/ABI/testing/sysfs-class-watchdog > +++ b/Documentation/ABI/testing/sysfs-class-watchdog > @@ -6,6 +6,13 @@ Description: > device at boot. It is equivalent to WDIOC_GETBOOTSTATUS of > ioctl interface. > > +What: /sys/class/watchdog/watchdogn/fw_version > +Date: April 2023 > +Contact: Thomas Weißschuh > +Description: > + It is a read only file. It contains firmware version of > + watchdog device. > + > What: /sys/class/watchdog/watchdogn/identity > Date: August 2015 > Contact: Wim Van Sebroeck <wim@iguana.be> > diff --git a/drivers/watchdog/watchdog_dev.c b/drivers/watchdog/watchdog_dev.c > index 55574ed42504..7feeda02a531 100644 > --- a/drivers/watchdog/watchdog_dev.c > +++ b/drivers/watchdog/watchdog_dev.c > @@ -546,6 +546,15 @@ static ssize_t pretimeout_show(struct device *dev, > } > static DEVICE_ATTR_RO(pretimeout); > > +static ssize_t fw_version_show(struct device *dev, struct device_attribute *attr, > + char *buf) > +{ > + struct watchdog_device *wdd = dev_get_drvdata(dev); > + > + return sysfs_emit(buf, "%d\n", wdd->info->firmware_version); > +} > +static DEVICE_ATTR_RO(fw_version); > + > static ssize_t identity_show(struct device *dev, struct device_attribute *attr, > char *buf) > { > @@ -617,6 +626,7 @@ static umode_t wdt_is_visible(struct kobject *kobj, struct attribute *attr, > } > static struct attribute *wdt_attrs[] = { > &dev_attr_state.attr, > + &dev_attr_fw_version.attr, > &dev_attr_identity.attr, > &dev_attr_timeout.attr, > &dev_attr_min_timeout.attr,
diff --git a/Documentation/ABI/testing/sysfs-class-watchdog b/Documentation/ABI/testing/sysfs-class-watchdog index 585caecda3a5..27c000238fe4 100644 --- a/Documentation/ABI/testing/sysfs-class-watchdog +++ b/Documentation/ABI/testing/sysfs-class-watchdog @@ -6,6 +6,13 @@ Description: device at boot. It is equivalent to WDIOC_GETBOOTSTATUS of ioctl interface. +What: /sys/class/watchdog/watchdogn/fw_version +Date: April 2023 +Contact: Thomas Weißschuh +Description: + It is a read only file. It contains firmware version of + watchdog device. + What: /sys/class/watchdog/watchdogn/identity Date: August 2015 Contact: Wim Van Sebroeck <wim@iguana.be> diff --git a/drivers/watchdog/watchdog_dev.c b/drivers/watchdog/watchdog_dev.c index 55574ed42504..7feeda02a531 100644 --- a/drivers/watchdog/watchdog_dev.c +++ b/drivers/watchdog/watchdog_dev.c @@ -546,6 +546,15 @@ static ssize_t pretimeout_show(struct device *dev, } static DEVICE_ATTR_RO(pretimeout); +static ssize_t fw_version_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + struct watchdog_device *wdd = dev_get_drvdata(dev); + + return sysfs_emit(buf, "%d\n", wdd->info->firmware_version); +} +static DEVICE_ATTR_RO(fw_version); + static ssize_t identity_show(struct device *dev, struct device_attribute *attr, char *buf) { @@ -617,6 +626,7 @@ static umode_t wdt_is_visible(struct kobject *kobj, struct attribute *attr, } static struct attribute *wdt_attrs[] = { &dev_attr_state.attr, + &dev_attr_fw_version.attr, &dev_attr_identity.attr, &dev_attr_timeout.attr, &dev_attr_min_timeout.attr,
This synchronizes the information reported by ioctl and sysfs. The mismatch is confusing because "wdctl" from util-linux uses the ioctl when used with root privileges and sysfs without. The file is called "fw_version" instead of "firmware_version" as "firmware_version" is already used as custom attribute by single drivers. Signed-off-by: Thomas Weißschuh <linux@weissschuh.net> --- Documentation/ABI/testing/sysfs-class-watchdog | 7 +++++++ drivers/watchdog/watchdog_dev.c | 10 ++++++++++ 2 files changed, 17 insertions(+)