diff options
author | Vladimir Zapolskiy <vladimir_zapolskiy@mentor.com> | 2016-10-07 15:39:57 +0300 |
---|---|---|
committer | Wim Van Sebroeck <wim@iguana.be> | 2016-10-08 10:27:24 +0200 |
commit | 89873a711dd20b614abb6e4038fb4b5462f4c701 (patch) | |
tree | 88fadc0684b9936a9c60eae9cf91ccacd409003e /drivers/watchdog/watchdog_dev.c | |
parent | 53f96cee1aff74c8ee3c5f7a25df0c01d7117eeb (diff) | |
download | blackbird-op-linux-89873a711dd20b614abb6e4038fb4b5462f4c701.tar.gz blackbird-op-linux-89873a711dd20b614abb6e4038fb4b5462f4c701.zip |
watchdog: pretimeout: add pretimeout_available_governors attribute
The change adds an option to a user with CONFIG_WATCHDOG_SYSFS and
CONFIG_WATCHDOG_PRETIMEOUT_GOV enabled to get information about all
registered watchdog pretimeout governors by reading watchdog device
attribute named "pretimeout_available_governors".
Signed-off-by: Vladimir Zapolskiy <vladimir_zapolskiy@mentor.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Tested-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Diffstat (limited to 'drivers/watchdog/watchdog_dev.c')
-rw-r--r-- | drivers/watchdog/watchdog_dev.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/watchdog/watchdog_dev.c b/drivers/watchdog/watchdog_dev.c index 3fdbe0ab1365..32930a073a12 100644 --- a/drivers/watchdog/watchdog_dev.c +++ b/drivers/watchdog/watchdog_dev.c @@ -489,6 +489,13 @@ static ssize_t state_show(struct device *dev, struct device_attribute *attr, } static DEVICE_ATTR_RO(state); +static ssize_t pretimeout_available_governors_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + return watchdog_pretimeout_available_governors_get(buf); +} +static DEVICE_ATTR_RO(pretimeout_available_governors); + static ssize_t pretimeout_governor_show(struct device *dev, struct device_attribute *attr, char *buf) @@ -524,7 +531,8 @@ static umode_t wdt_is_visible(struct kobject *kobj, struct attribute *attr, else if (attr == &dev_attr_pretimeout.attr && !(wdd->info->options & WDIOF_PRETIMEOUT)) mode = 0; - else if (attr == &dev_attr_pretimeout_governor.attr && + else if ((attr == &dev_attr_pretimeout_governor.attr || + attr == &dev_attr_pretimeout_available_governors.attr) && (!(wdd->info->options & WDIOF_PRETIMEOUT) || !IS_ENABLED(CONFIG_WATCHDOG_PRETIMEOUT_GOV))) mode = 0; @@ -541,6 +549,7 @@ static struct attribute *wdt_attrs[] = { &dev_attr_status.attr, &dev_attr_nowayout.attr, &dev_attr_pretimeout_governor.attr, + &dev_attr_pretimeout_available_governors.attr, NULL, }; |