Input: ati-remote2 - use driver core to instantiate device attributes
Subsystems (3)
Dmitry Torokhov
maintainerPATCH 1/1 Input: ati-remote2 - use driver core to instantiate device attributes
Instead of manually creating driver-specific device attributes set struct usb_driver->dev_groups pointer to have the driver core do it.
Signed-off-by Dmitry Torokhov <[email protected]>
--- drivers/input/misc/ati_remote2.c | 50 +++++++++++--------------------- 1 file changed, 17 insertions(+), 33 deletions(-)
drivers/input/misc/ati_remote2.c +17 -33
@@ -204,26 +204,7 @@ struct ati_remote2 {unsigned int mode_mask; }; -static int ati_remote2_probe (struct usb_interface *interface,const struct usb_device_id *id); -static void ati_remote2_disconnect (struct usb_interface *interface); -static int ati_remote2_suspend (struct usb_interface *interface,pm_message_t message); -static int ati_remote2_resume (struct usb_interface *interface); -static int ati_remote2_reset_resume (struct usb_interface *interface); -static int ati_remote2_pre_reset (struct usb_interface *interface); -static int ati_remote2_post_reset (struct usb_interface *interface); - -static struct usb_driver ati_remote2_driver = { - .name ="ati_remote2" , - .probe = ati_remote2_probe, - .disconnect = ati_remote2_disconnect, - .id_table = ati_remote2_id_table, - .suspend = ati_remote2_suspend, - .resume = ati_remote2_resume, - .reset_resume = ati_remote2_reset_resume, - .pre_reset = ati_remote2_pre_reset, - .post_reset = ati_remote2_post_reset, - .supports_autosuspend =1 , -}; +static struct usb_driver ati_remote2_driver;static int ati_remote2_submit_urbs (struct ati_remote2 *ar2) {
@@ -791,10 +772,7 @@ static struct attribute *ati_remote2_attrs[] = { &dev_attr_mode_mask.attr,NULL , }; - -static struct attribute_group ati_remote2_attr_group = { - .attrs = ati_remote2_attrs, -}; +ATTRIBUTE_GROUPS (ati_remote2);static int ati_remote2_probe (struct usb_interface *interface,const struct usb_device_id *id) {
@@ -861,13 +839,9 @@ static int ati_remote2_probe(struct usb_interface *interface, const struct usb_dstrlcat (ar2->name,"ATI Remote Wonder II" ,sizeof (ar2->name)); - r =sysfs_create_group (&udev->dev.kobj, &ati_remote2_attr_group); -if (r) - goto fail3; - r =ati_remote2_input_init (ar2);if (r) - goto fail4; + goto fail3;usb_set_intfdata (interface, ar2);
@@ -875,8 +849,6 @@ static int ati_remote2_probe(struct usb_interface *interface, const struct usb_dreturn 0 ; - fail4: -sysfs_remove_group (&udev->dev.kobj, &ati_remote2_attr_group); fail3:ati_remote2_urb_cleanup (ar2); fail2:
@@ -900,8 +872,6 @@ static void ati_remote2_disconnect(struct usb_interface *interface)input_unregister_device (ar2->idev); -sysfs_remove_group (&ar2->udev->dev.kobj, &ati_remote2_attr_group); -ati_remote2_urb_cleanup (ar2);usb_driver_release_interface (&ati_remote2_driver, ar2->intf[1 ]);
@@ -1032,4 +1002,18 @@ static int ati_remote2_post_reset(struct usb_interface *interface)return r; } +static struct usb_driver ati_remote2_driver = { + .name ="ati_remote2" , + .probe = ati_remote2_probe, + .disconnect = ati_remote2_disconnect, + .dev_groups = ati_remote2_groups, + .id_table = ati_remote2_id_table, + .suspend = ati_remote2_suspend, + .resume = ati_remote2_resume, + .reset_resume = ati_remote2_reset_resume, + .pre_reset = ati_remote2_pre_reset, + .post_reset = ati_remote2_post_reset, + .supports_autosuspend =1 , +}; +module_usb_driver (ati_remote2_driver);
Signature · 5 lines
2.45.2.803.g4e1b14247a-goog -- Dmitry
Quoted 5 lines · Dmitry Torokhov
Instead of manually creating driver-specific device attributes set struct
usb_driver->dev_groupspointer to have the driver core do it.Signed-off-by Dmitry Torokhov <[email protected]>
Reviewed-by Greg Kroah-Hartman <[email protected]>
Quoted 28 lines · Dmitry Torokhov
Instead of manually creating driver-specific device attributes set struct
usb_driver->dev_groupspointer to have the driver core do it.Signed-off-by Dmitry Torokhov <[email protected]>--- drivers/input/misc/ati_remote2.c | 50 +++++++++++--------------------- 1 file changed, 17 insertions(+), 33 deletions(-)drivers/input/misc/ati_remote2.c +0
-11@@ -204,26 +204,7 @@ struct ati_remote2 {unsigned int mode_mask; }; -static int ati_remote2_probe (struct usb_interface *interface,const struct usb_device_id *id); -static void ati_remote2_disconnect (struct usb_interface *interface); -static int ati_remote2_suspend (struct usb_interface *interface,pm_message_t message); -static int ati_remote2_resume (struct usb_interface *interface); -static int ati_remote2_reset_resume (struct usb_interface *interface); -static int ati_remote2_pre_reset (struct usb_interface *interface); -static int ati_remote2_post_reset (struct usb_interface *interface); - -static struct usb_driver ati_remote2_driver = { - .name ="ati_remote2" , - .probe = ati_remote2_probe,
drivers/input/misc/ati_remote2.c struct ati_remote2 { · line 207
Quoted 10 lines
drivers/input/misc/ati_remote2.c +1
-9- .disconnect = ati_remote2_disconnect, - .id_table = ati_remote2_id_table, - .suspend = ati_remote2_suspend, - .resume = ati_remote2_resume, - .reset_resume = ati_remote2_reset_resume, - .pre_reset = ati_remote2_pre_reset, - .post_reset = ati_remote2_post_reset, - .supports_autosuspend = 1, -}; +static struct usb_driver ati_remote2_driver;
Would be easier to see what's actually happening if the rearrangement of the forward declarations was a separate patch.
Otherwise lgtm
Reviewed-by Ville Syrjälä <[email protected]>
Quoted 73 lines
drivers/input/misc/ati_remote2.c +16
-13static int ati_remote2_submit_urbs (struct ati_remote2 *ar2) {@@ -791,10 +772,7 @@ static struct attribute *ati_remote2_attrs[] = { &dev_attr_mode_mask.attr,NULL , }; - -static struct attribute_group ati_remote2_attr_group = { - .attrs = ati_remote2_attrs, -}; +ATTRIBUTE_GROUPS (ati_remote2);static int ati_remote2_probe (struct usb_interface *interface,const struct usb_device_id *id) {@@ -861,13 +839,9 @@ static int ati_remote2_probe(struct usb_interface *interface, const struct usb_dstrlcat (ar2->name,"ATI Remote Wonder II" ,sizeof (ar2->name)); - r =sysfs_create_group (&udev->dev.kobj, &ati_remote2_attr_group); -if (r) - goto fail3; - r =ati_remote2_input_init (ar2);if (r) - goto fail4; + goto fail3;usb_set_intfdata (interface, ar2);@@ -875,8 +849,6 @@ static int ati_remote2_probe(struct usb_interface *interface, const struct usb_dreturn 0 ; - fail4: -sysfs_remove_group (&udev->dev.kobj, &ati_remote2_attr_group); fail3:ati_remote2_urb_cleanup (ar2); fail2:@@ -900,8 +872,6 @@ static void ati_remote2_disconnect(struct usb_interface *interface)input_unregister_device (ar2->idev); -sysfs_remove_group (&ar2->udev->dev.kobj, &ati_remote2_attr_group); -ati_remote2_urb_cleanup (ar2);usb_driver_release_interface (&ati_remote2_driver, ar2->intf[1 ]);@@ -1032,4 +1002,18 @@ static int ati_remote2_post_reset(struct usb_interface *interface)return r; } +static struct usb_driver ati_remote2_driver = { + .name ="ati_remote2" , + .probe = ati_remote2_probe, + .disconnect = ati_remote2_disconnect, + .dev_groups = ati_remote2_groups, + .id_table = ati_remote2_id_table, + .suspend = ati_remote2_suspend, + .resume = ati_remote2_resume, + .reset_resume = ati_remote2_reset_resume, + .pre_reset = ati_remote2_pre_reset, + .post_reset = ati_remote2_post_reset, + .supports_autosuspend =1 , +}; +module_usb_driver (ati_remote2_driver);Signature · 5 lines
2.45.2.803.g4e1b14247a-goog -- Dmitry
Signature · 3 lines
Ville Syrjälä [email protected] http://www.sci.fi/~syrjala/