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

Commit 386d8772 authored by Dmitry Torokhov's avatar Dmitry Torokhov
Browse files

Input: serio - use device core to create 'id' attribute group



Instead of creating 'id' sysfs attribute group by ourselves rely on
device core to do that for us.

Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
parent b45d44e7
Loading
Loading
Loading
Loading
+9 −8
Original line number Original line Diff line number Diff line
@@ -452,6 +452,11 @@ static struct attribute_group serio_id_attr_group = {
	.attrs	= serio_device_id_attrs,
	.attrs	= serio_device_id_attrs,
};
};


static const struct attribute_group *serio_device_attr_groups[] = {
	&serio_id_attr_group,
	NULL
};

static ssize_t serio_rebind_driver(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)
static ssize_t serio_rebind_driver(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)
{
{
	struct serio *serio = to_serio_port(dev);
	struct serio *serio = to_serio_port(dev);
@@ -539,6 +544,7 @@ static void serio_init_port(struct serio *serio)
			(long)atomic_inc_return(&serio_no) - 1);
			(long)atomic_inc_return(&serio_no) - 1);
	serio->dev.bus = &serio_bus;
	serio->dev.bus = &serio_bus;
	serio->dev.release = serio_release_port;
	serio->dev.release = serio_release_port;
	serio->dev.groups = serio_device_attr_groups;
	if (serio->parent) {
	if (serio->parent) {
		serio->dev.parent = &serio->parent->dev;
		serio->dev.parent = &serio->parent->dev;
		serio->depth = serio->parent->depth + 1;
		serio->depth = serio->parent->depth + 1;
@@ -562,21 +568,17 @@ static void serio_add_port(struct serio *serio)
	}
	}


	list_add_tail(&serio->node, &serio_list);
	list_add_tail(&serio->node, &serio_list);

	if (serio->start)
	if (serio->start)
		serio->start(serio);
		serio->start(serio);

	error = device_add(&serio->dev);
	error = device_add(&serio->dev);
	if (error)
	if (error)
		printk(KERN_ERR
		printk(KERN_ERR
			"serio: device_add() failed for %s (%s), error: %d\n",
			"serio: device_add() failed for %s (%s), error: %d\n",
			serio->phys, serio->name, error);
			serio->phys, serio->name, error);
	else {
	else
		serio->registered = true;
		serio->registered = true;
		error = sysfs_create_group(&serio->dev.kobj, &serio_id_attr_group);
		if (error)
			printk(KERN_ERR
				"serio: sysfs_create_group() failed for %s (%s), error: %d\n",
				serio->phys, serio->name, error);
	}
}
}


/*
/*
@@ -604,7 +606,6 @@ static void serio_destroy_port(struct serio *serio)
	}
	}


	if (serio->registered) {
	if (serio->registered) {
		sysfs_remove_group(&serio->dev.kobj, &serio_id_attr_group);
		device_del(&serio->dev);
		device_del(&serio->dev);
		serio->registered = false;
		serio->registered = false;
	}
	}