Browse Source

leds: add led-class attribute-group support

Allow led-class devices to be created with optional attribute groups.

This is needed in order to allow led drivers to create custom device
attributes in a race-free manner.

Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Bryan Wu <cooloney@gmail.com>
Johan Hovold 11 years ago
parent
commit
d0d480cce8
2 changed files with 5 additions and 2 deletions
  1. 3 2
      drivers/leds/led-class.c
  2. 2 0
      include/linux/leds.h

+ 3 - 2
drivers/leds/led-class.c

@@ -210,8 +210,9 @@ static const struct dev_pm_ops leds_class_dev_pm_ops = {
  */
  */
 int led_classdev_register(struct device *parent, struct led_classdev *led_cdev)
 int led_classdev_register(struct device *parent, struct led_classdev *led_cdev)
 {
 {
-	led_cdev->dev = device_create(leds_class, parent, 0, led_cdev,
-				      "%s", led_cdev->name);
+	led_cdev->dev = device_create_with_groups(leds_class, parent, 0,
+					led_cdev, led_cdev->groups,
+					"%s", led_cdev->name);
 	if (IS_ERR(led_cdev->dev))
 	if (IS_ERR(led_cdev->dev))
 		return PTR_ERR(led_cdev->dev);
 		return PTR_ERR(led_cdev->dev);
 
 

+ 2 - 0
include/linux/leds.h

@@ -63,6 +63,8 @@ struct led_classdev {
 				     unsigned long *delay_off);
 				     unsigned long *delay_off);
 
 
 	struct device		*dev;
 	struct device		*dev;
+	const struct attribute_group	**groups;
+
 	struct list_head	 node;			/* LED Device list */
 	struct list_head	 node;			/* LED Device list */
 	const char		*default_trigger;	/* Trigger to use */
 	const char		*default_trigger;	/* Trigger to use */