Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8f1e938d authored by Kay Sievers's avatar Kay Sievers Committed by Greg Kroah-Hartman
Browse files

arm: leds: convert sysdev_class to a regular subsystem



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: default avatarKay Sievers <kay.sievers@vrfy.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent b3e8d7b2
Loading
Loading
Loading
Loading
+11 −10
Original line number Diff line number Diff line
@@ -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;