diff options
Diffstat (limited to 'leds-convert-class-code-to-use-dev_groups.patch')
-rw-r--r-- | leds-convert-class-code-to-use-dev_groups.patch | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/leds-convert-class-code-to-use-dev_groups.patch b/leds-convert-class-code-to-use-dev_groups.patch new file mode 100644 index 00000000000000..ace9ceac4fa186 --- /dev/null +++ b/leds-convert-class-code-to-use-dev_groups.patch @@ -0,0 +1,95 @@ +From foo@baz Tue Jul 9 14:58:19 PDT 2013 +Date: Tue, 09 Jul 2013 14:58:19 -0700 +To: Greg KH <gregkh@linuxfoundation.org> +From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> +Subject: leds: convert class code to use dev_groups + +The dev_attrs field of struct class is going away soon, dev_groups +should be used instead. This converts the led class code to use the +correct field. + +Cc: Bryan Wu <cooloney@gmail.com> +Cc: Richard Purdie <rpurdie@rpsys.net> +Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> +--- + drivers/leds/led-class.c | 38 ++++++++++++++++++++++++++++++-------- + 1 file changed, 30 insertions(+), 8 deletions(-) + +--- a/drivers/leds/led-class.c ++++ b/drivers/leds/led-class.c +@@ -29,7 +29,7 @@ static void led_update_brightness(struct + led_cdev->brightness = led_cdev->brightness_get(led_cdev); + } + +-static ssize_t led_brightness_show(struct device *dev, ++static ssize_t brightness_show(struct device *dev, + struct device_attribute *attr, char *buf) + { + struct led_classdev *led_cdev = dev_get_drvdata(dev); +@@ -40,7 +40,7 @@ static ssize_t led_brightness_show(struc + return sprintf(buf, "%u\n", led_cdev->brightness); + } + +-static ssize_t led_brightness_store(struct device *dev, ++static ssize_t brightness_store(struct device *dev, + struct device_attribute *attr, const char *buf, size_t size) + { + struct led_classdev *led_cdev = dev_get_drvdata(dev); +@@ -57,6 +57,7 @@ static ssize_t led_brightness_store(stru + + return size; + } ++static DEVICE_ATTR_RW(brightness); + + static ssize_t led_max_brightness_show(struct device *dev, + struct device_attribute *attr, char *buf) +@@ -65,14 +66,35 @@ static ssize_t led_max_brightness_show(s + + return sprintf(buf, "%u\n", led_cdev->max_brightness); + } ++static DEVICE_ATTR(max_brightness, 0444, led_max_brightness_show, NULL); + +-static struct device_attribute led_class_attrs[] = { +- __ATTR(brightness, 0644, led_brightness_show, led_brightness_store), +- __ATTR(max_brightness, 0444, led_max_brightness_show, NULL), + #ifdef CONFIG_LEDS_TRIGGERS +- __ATTR(trigger, 0644, led_trigger_show, led_trigger_store), ++static DEVICE_ATTR(trigger, 0644, led_trigger_show, led_trigger_store); ++static struct attribute *led_trigger_attrs[] = { ++ &dev_attr_trigger.attr, ++ NULL, ++}; ++static const struct attribute_group led_trigger_group = { ++ .attrs = led_trigger_attrs, ++}; ++#endif ++ ++static struct attribute *led_class_attrs[] = { ++ &dev_attr_brightness.attr, ++ &dev_attr_max_brightness.attr, ++ NULL, ++}; ++ ++static const struct attribute_group led_group = { ++ .attrs = led_class_attrs, ++}; ++ ++static const struct attribute_group *led_groups[] = { ++ &led_group, ++#ifdef CONFIG_LEDS_TRIGGERS ++ &led_trigger_group, + #endif +- __ATTR_NULL, ++ NULL, + }; + + static void led_timer_function(unsigned long data) +@@ -258,7 +280,7 @@ static int __init leds_init(void) + if (IS_ERR(leds_class)) + return PTR_ERR(leds_class); + leds_class->pm = &leds_class_dev_pm_ops; +- leds_class->dev_attrs = led_class_attrs; ++ leds_class->dev_groups = led_groups; + return 0; + } + |