hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/drivers/usb/misc/usbsevseg.c
....@@ -316,7 +316,7 @@
316316 MYDEV_ATTR_SIMPLE_UNSIGNED(mode_msb, update_display_mode);
317317 MYDEV_ATTR_SIMPLE_UNSIGNED(mode_lsb, update_display_mode);
318318
319
-static struct attribute *dev_attrs[] = {
319
+static struct attribute *sevseg_attrs[] = {
320320 &dev_attr_powered.attr,
321321 &dev_attr_text.attr,
322322 &dev_attr_textmode.attr,
....@@ -325,10 +325,7 @@
325325 &dev_attr_mode_lsb.attr,
326326 NULL
327327 };
328
-
329
-static const struct attribute_group dev_attr_grp = {
330
- .attrs = dev_attrs,
331
-};
328
+ATTRIBUTE_GROUPS(sevseg);
332329
333330 static int sevseg_probe(struct usb_interface *interface,
334331 const struct usb_device_id *id)
....@@ -354,17 +351,9 @@
354351 mydev->mode_msb = 0x06; /* 6 characters */
355352 mydev->mode_lsb = 0x3f; /* scanmode for 6 chars */
356353
357
- rc = sysfs_create_group(&interface->dev.kobj, &dev_attr_grp);
358
- if (rc)
359
- goto error;
360
-
361354 dev_info(&interface->dev, "USB 7 Segment device now attached\n");
362355 return 0;
363356
364
-error:
365
- usb_set_intfdata(interface, NULL);
366
- usb_put_dev(mydev->udev);
367
- kfree(mydev);
368357 error_mem:
369358 return rc;
370359 }
....@@ -374,7 +363,6 @@
374363 struct usb_sevsegdev *mydev;
375364
376365 mydev = usb_get_intfdata(interface);
377
- sysfs_remove_group(&interface->dev.kobj, &dev_attr_grp);
378366 usb_set_intfdata(interface, NULL);
379367 usb_put_dev(mydev->udev);
380368 kfree(mydev);
....@@ -423,6 +411,7 @@
423411 .resume = sevseg_resume,
424412 .reset_resume = sevseg_reset_resume,
425413 .id_table = id_table,
414
+ .dev_groups = sevseg_groups,
426415 .supports_autosuspend = 1,
427416 };
428417