arm: leds: convert sysdev_class to a regular subsystem
authorKay Sievers <kay.sievers@vrfy.org>
Wed, 21 Dec 2011 23:52:57 +0000 (15:52 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 21 Dec 2011 23:52:57 +0000 (15:52 -0800)
After all sysdev classes are ported to regular driver core entities, the
sysdev implementation will be entirely removed from the kernel.

Cc: Russell King <linux@arm.linux.org.uk>
Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/arm/kernel/leds.c

index 0bcd383415731befa58ec5b874f38ef9a816ba1e..1911dae19e4f6947c9f1401e3894c0b3cce72f77 100644 (file)
@@ -9,7 +9,7 @@
  */
 #include <linux/export.h>
 #include <linux/init.h>
-#include <linux/sysdev.h>
+#include <linux/device.h>
 #include <linux/syscore_ops.h>
 #include <linux/string.h>
 
@@ -34,8 +34,8 @@ static const struct leds_evt_name evt_names[] = {
        { "red",   led_red_on,   led_red_off   },
 };
 
-static ssize_t leds_store(struct sys_device *dev,
-                       struct sysdev_attribute *attr,
+static ssize_t leds_store(struct device *dev,
+                       struct device_attribute *attr,
                        const char *buf, size_t size)
 {
        int ret = -EINVAL, len = strcspn(buf, " ");
@@ -69,15 +69,16 @@ static ssize_t leds_store(struct sys_device *dev,
        return ret;
 }
 
-static SYSDEV_ATTR(event, 0200, NULL, leds_store);
+static DEVICE_ATTR(event, 0200, NULL, leds_store);
 
-static struct sysdev_class leds_sysclass = {
+static struct bus_type leds_subsys = {
        .name           = "leds",
+       .dev_name       = "leds",
 };
 
-static struct sys_device leds_device = {
+static struct device leds_device = {
        .id             = 0,
-       .cls            = &leds_sysclass,
+       .bus            = &leds_subsys,
 };
 
 static int leds_suspend(void)
@@ -105,11 +106,11 @@ static struct syscore_ops leds_syscore_ops = {
 static int __init leds_init(void)
 {
        int ret;
-       ret = sysdev_class_register(&leds_sysclass);
+       ret = subsys_system_register(&leds_subsys, NULL);
        if (ret == 0)
-               ret = sysdev_register(&leds_device);
+               ret = device_register(&leds_device);
        if (ret == 0)
-               ret = sysdev_create_file(&leds_device, &attr_event);
+               ret = device_create_file(&leds_device, &dev_attr_event);
        if (ret == 0)
                register_syscore_ops(&leds_syscore_ops);
        return ret;