Input: psmouse - switch to using dev_groups for driver-specific attributes
The driver core now has the ability to handle the creation and removal of device-specific sysfs files, let's use it instead of registering and unregistering attributes by hand. Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Link: https://lore.kernel.org/r/20220903051119.1332808-2-dmitry.torokhov@gmail.com Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This commit is contained in:
parent
c99e3ac632
commit
fd30a4ba81
|
@ -94,7 +94,7 @@ PSMOUSE_DEFINE_ATTR(resync_time, S_IWUSR | S_IRUGO,
|
|||
(void *) offsetof(struct psmouse, resync_time),
|
||||
psmouse_show_int_attr, psmouse_set_int_attr);
|
||||
|
||||
static struct attribute *psmouse_attributes[] = {
|
||||
static struct attribute *psmouse_dev_attrs[] = {
|
||||
&psmouse_attr_protocol.dattr.attr,
|
||||
&psmouse_attr_rate.dattr.attr,
|
||||
&psmouse_attr_resolution.dattr.attr,
|
||||
|
@ -103,9 +103,7 @@ static struct attribute *psmouse_attributes[] = {
|
|||
NULL
|
||||
};
|
||||
|
||||
static const struct attribute_group psmouse_attribute_group = {
|
||||
.attrs = psmouse_attributes,
|
||||
};
|
||||
ATTRIBUTE_GROUPS(psmouse_dev);
|
||||
|
||||
/*
|
||||
* psmouse_mutex protects all operations changing state of mouse
|
||||
|
@ -1481,8 +1479,6 @@ static void psmouse_disconnect(struct serio *serio)
|
|||
struct psmouse *psmouse = serio_get_drvdata(serio);
|
||||
struct psmouse *parent = NULL;
|
||||
|
||||
sysfs_remove_group(&serio->dev.kobj, &psmouse_attribute_group);
|
||||
|
||||
mutex_lock(&psmouse_mutex);
|
||||
|
||||
psmouse_set_state(psmouse, PSMOUSE_CMD_MODE);
|
||||
|
@ -1647,10 +1643,6 @@ static int psmouse_connect(struct serio *serio, struct serio_driver *drv)
|
|||
if (parent && parent->pt_activate)
|
||||
parent->pt_activate(parent);
|
||||
|
||||
error = sysfs_create_group(&serio->dev.kobj, &psmouse_attribute_group);
|
||||
if (error)
|
||||
goto err_pt_deactivate;
|
||||
|
||||
/*
|
||||
* PS/2 devices having SMBus companions should stay disabled
|
||||
* on PS/2 side, in order to have SMBus part operable.
|
||||
|
@ -1666,13 +1658,6 @@ static int psmouse_connect(struct serio *serio, struct serio_driver *drv)
|
|||
mutex_unlock(&psmouse_mutex);
|
||||
return retval;
|
||||
|
||||
err_pt_deactivate:
|
||||
if (parent && parent->pt_deactivate)
|
||||
parent->pt_deactivate(parent);
|
||||
if (input_dev) {
|
||||
input_unregister_device(input_dev);
|
||||
input_dev = NULL; /* so we don't try to free it below */
|
||||
}
|
||||
err_protocol_disconnect:
|
||||
if (psmouse->disconnect)
|
||||
psmouse->disconnect(psmouse);
|
||||
|
@ -1791,7 +1776,8 @@ MODULE_DEVICE_TABLE(serio, psmouse_serio_ids);
|
|||
|
||||
static struct serio_driver psmouse_drv = {
|
||||
.driver = {
|
||||
.name = "psmouse",
|
||||
.name = "psmouse",
|
||||
.dev_groups = psmouse_dev_groups,
|
||||
},
|
||||
.description = DRIVER_DESC,
|
||||
.id_table = psmouse_serio_ids,
|
||||
|
|
Loading…
Reference in New Issue