[RFC PATCH 2/5] hwmon: Introduce hwmon_device_register_groups

From: Guenter Roeck
Date: Sat Jul 06 2013 - 13:25:31 EST


hwmon_device_register_groups() lets callers register a hwmon device
together with all sysfs attributes in a single call.

Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
---
drivers/hwmon/hwmon.c | 14 +++++++++++---
include/linux/hwmon.h | 4 ++++
2 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/drivers/hwmon/hwmon.c b/drivers/hwmon/hwmon.c
index 646314f..e94a053 100644
--- a/drivers/hwmon/hwmon.c
+++ b/drivers/hwmon/hwmon.c
@@ -38,7 +38,9 @@ static DEFINE_IDA(hwmon_ida);
*
* Returns the pointer to the new device.
*/
-struct device *hwmon_device_register(struct device *dev)
+struct device *
+hwmon_device_register_groups(struct device *dev, void *drvdata,
+ const struct attribute_group **groups)
{
struct device *hwdev;
int id;
@@ -47,14 +49,20 @@ struct device *hwmon_device_register(struct device *dev)
if (id < 0)
return ERR_PTR(id);

- hwdev = device_create(hwmon_class, dev, MKDEV(0, 0), NULL,
- HWMON_ID_FORMAT, id);
+ hwdev = device_create_groups(hwmon_class, dev, MKDEV(0, 0), drvdata,
+ groups, HWMON_ID_FORMAT, id);

if (IS_ERR(hwdev))
ida_simple_remove(&hwmon_ida, id);

return hwdev;
}
+EXPORT_SYMBOL_GPL(hwmon_device_register_groups);
+
+struct device *hwmon_device_register(struct device *dev)
+{
+ return hwmon_device_register_groups(dev, NULL, NULL);
+}
EXPORT_SYMBOL_GPL(hwmon_device_register);

/**
diff --git a/include/linux/hwmon.h b/include/linux/hwmon.h
index b2514f7..ad91c45 100644
--- a/include/linux/hwmon.h
+++ b/include/linux/hwmon.h
@@ -15,8 +15,12 @@
#define _HWMON_H_

struct device;
+struct attribute_group;

struct device *hwmon_device_register(struct device *dev);
+struct device *
+hwmon_device_register_groups(struct device *dev, void *drvdata,
+ const struct attribute_group **groups);

void hwmon_device_unregister(struct device *dev);

--
1.7.9.7

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/