[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20230131174321.GA3602958@roeck-us.net>
Date: Tue, 31 Jan 2023 09:43:21 -0800
From: Guenter Roeck <linux@...ck-us.net>
To: Thomas Weißschuh <linux@...ssschuh.net>
Cc: Wim Van Sebroeck <wim@...ux-watchdog.org>,
linux-kernel@...r.kernel.org, linux-watchdog@...r.kernel.org,
Wim Van Sebroeck <wim@...ana.be>
Subject: Re: [PATCH v2 1/2] watchdog: report fw_version in sysfs
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@...ssschuh.net>
Reviewed-by: Guenter Roeck <linux@...ck-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@...ana.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,
Powered by blists - more mailing lists