Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cb9def4dff9fe7e3d3114eba4e2d89f52265e22c
Commit:     cb9def4dff9fe7e3d3114eba4e2d89f52265e22c
Parent:     15e03ae811475c2beebfde18717935ee9ce64617
Author:     Dmitry Torokhov <[EMAIL PROTECTED]>
AuthorDate: Wed Mar 7 23:20:26 2007 -0500
Committer:  Dmitry Torokhov <[EMAIL PROTECTED]>
CommitDate: Wed Mar 7 23:20:26 2007 -0500

    Input: let driver core create class device attribute groups
    
    Rely on device core to create attribute groups for input devices
    instead of open-coding it.
    
    Signed-off-by: Dmitry Torokhov <[EMAIL PROTECTED]>
---
 drivers/input/input.c |   29 ++++++++---------------------
 1 files changed, 8 insertions(+), 21 deletions(-)

diff --git a/drivers/input/input.c b/drivers/input/input.c
index 9b3bfce..4486402 100644
--- a/drivers/input/input.c
+++ b/drivers/input/input.c
@@ -754,6 +754,13 @@ static struct attribute_group input_dev_caps_attr_group = {
        .attrs  = input_dev_caps_attrs,
 };
 
+static struct attribute_group *input_dev_attr_groups[] = {
+       &input_dev_attr_group,
+       &input_dev_id_attr_group,
+       &input_dev_caps_attr_group,
+       NULL
+};
+
 static void input_dev_release(struct class_device *class_dev)
 {
        struct input_dev *dev = to_input_dev(class_dev);
@@ -907,6 +914,7 @@ struct input_dev *input_allocate_device(void)
        dev = kzalloc(sizeof(struct input_dev), GFP_KERNEL);
        if (dev) {
                dev->cdev.class = &input_class;
+               dev->cdev.groups = input_dev_attr_groups;
                class_device_initialize(&dev->cdev);
                mutex_init(&dev->mutex);
                INIT_LIST_HEAD(&dev->h_list);
@@ -979,18 +987,6 @@ int input_register_device(struct input_dev *dev)
        if (error)
                return error;
 
-       error = sysfs_create_group(&dev->cdev.kobj, &input_dev_attr_group);
-       if (error)
-               goto fail1;
-
-       error = sysfs_create_group(&dev->cdev.kobj, &input_dev_id_attr_group);
-       if (error)
-               goto fail2;
-
-       error = sysfs_create_group(&dev->cdev.kobj, &input_dev_caps_attr_group);
-       if (error)
-               goto fail3;
-
        path = kobject_get_path(&dev->cdev.kobj, GFP_KERNEL);
        printk(KERN_INFO "input: %s as %s\n",
                dev->name ? dev->name : "Unspecified device", path ? path : 
"N/A");
@@ -1008,11 +1004,6 @@ int input_register_device(struct input_dev *dev)
        input_wakeup_procfs_readers();
 
        return 0;
-
- fail3:        sysfs_remove_group(&dev->cdev.kobj, &input_dev_id_attr_group);
- fail2:        sysfs_remove_group(&dev->cdev.kobj, &input_dev_attr_group);
- fail1:        class_device_del(&dev->cdev);
-       return error;
 }
 EXPORT_SYMBOL(input_register_device);
 
@@ -1037,10 +1028,6 @@ void input_unregister_device(struct input_dev *dev)
 
        list_del_init(&dev->node);
 
-       sysfs_remove_group(&dev->cdev.kobj, &input_dev_caps_attr_group);
-       sysfs_remove_group(&dev->cdev.kobj, &input_dev_id_attr_group);
-       sysfs_remove_group(&dev->cdev.kobj, &input_dev_attr_group);
-
        class_device_unregister(&dev->cdev);
 
        input_wakeup_procfs_readers();
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to