watchdog: ziirave: Use watchdog infrastructure to create sysfs attributes
authorGuenter Roeck <linux@roeck-us.net>
Sun, 3 Jan 2016 23:11:57 +0000 (15:11 -0800)
committerWim Van Sebroeck <wim@iguana.be>
Mon, 11 Jan 2016 20:53:58 +0000 (21:53 +0100)
The watchdog core now supports creating driver specific sysfs attributes
when creating the watchdog device.

Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
drivers/watchdog/ziirave_wdt.c

index b498fdcc231a143f7c41a99ae22ea3422bdeee32..0c7cb7302cf06586917a8d237b052782c756a17d 100644 (file)
@@ -207,10 +207,7 @@ static struct attribute *ziirave_wdt_attrs[] = {
        &dev_attr_reset_reason.attr,
        NULL
 };
-
-static const struct attribute_group ziirave_wdt_sysfs_files = {
-       .attrs  = ziirave_wdt_attrs,
-};
+ATTRIBUTE_GROUPS(ziirave_wdt);
 
 static int ziirave_wdt_init_duration(struct i2c_client *client)
 {
@@ -260,6 +257,7 @@ static int ziirave_wdt_probe(struct i2c_client *client,
        w_priv->wdd.min_timeout = ZIIRAVE_TIMEOUT_MIN;
        w_priv->wdd.max_timeout = ZIIRAVE_TIMEOUT_MAX;
        w_priv->wdd.parent = &client->dev;
+       w_priv->wdd.groups = ziirave_wdt_groups;
 
        ret = watchdog_init_timeout(&w_priv->wdd, wdt_timeout, &client->dev);
        if (ret) {
@@ -327,26 +325,14 @@ static int ziirave_wdt_probe(struct i2c_client *client,
                return -ENODEV;
 
        ret = watchdog_register_device(&w_priv->wdd);
-       if (ret)
-               return ret;
-
-       ret = sysfs_create_group(&w_priv->wdd.dev->kobj,
-                                &ziirave_wdt_sysfs_files);
-       if (ret) {
-               watchdog_unregister_device(&w_priv->wdd);
 
-               return ret;
-       }
-
-       return 0;
+       return ret;
 }
 
 static int ziirave_wdt_remove(struct i2c_client *client)
 {
        struct ziirave_wdt_data *w_priv = i2c_get_clientdata(client);
 
-       sysfs_remove_group(&client->dev.kobj, &ziirave_wdt_sysfs_files);
-
        watchdog_unregister_device(&w_priv->wdd);
 
        return 0;