aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg KH <gregkh@linuxfoundation.org>2013-08-20 20:17:57 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-08-28 01:07:49 -0400
commit4c33dea7816a115a9bbcd7d9001674c7c3ba71ea (patch)
treef543c18d9fa0b49805bcd02380e5cd0f9e5c2433
parentf799878000c5a9a1e6a311dfd4faa50601dcb1f8 (diff)
firmware: dcdbas: use binary attribute groups
The dcdbas code was "hand rolling" a binary attribute group, which the driver core now supports automatically. So remove the "create the files by hand" logic, and just set the proper field in the attribute group structure, saving lots of code and headache. Cc: Doug Warzecha <Douglas_Warzecha@dell.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -- Doug, I can take this through my driver-core tree if you don't object. drivers/firmware/dcdbas.c | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-)
-rw-r--r--drivers/firmware/dcdbas.c19
1 files changed, 2 insertions, 17 deletions
diff --git a/drivers/firmware/dcdbas.c b/drivers/firmware/dcdbas.c
index 8e77c02edb24..ff080ee20197 100644
--- a/drivers/firmware/dcdbas.c
+++ b/drivers/firmware/dcdbas.c
@@ -535,11 +535,12 @@ static struct attribute *dcdbas_dev_attrs[] = {
535 535
536static struct attribute_group dcdbas_attr_group = { 536static struct attribute_group dcdbas_attr_group = {
537 .attrs = dcdbas_dev_attrs, 537 .attrs = dcdbas_dev_attrs,
538 .bin_attrs = dcdbas_bin_attrs,
538}; 539};
539 540
540static int dcdbas_probe(struct platform_device *dev) 541static int dcdbas_probe(struct platform_device *dev)
541{ 542{
542 int i, error; 543 int error;
543 544
544 host_control_action = HC_ACTION_NONE; 545 host_control_action = HC_ACTION_NONE;
545 host_control_smi_type = HC_SMITYPE_NONE; 546 host_control_smi_type = HC_SMITYPE_NONE;
@@ -555,18 +556,6 @@ static int dcdbas_probe(struct platform_device *dev)
555 if (error) 556 if (error)
556 return error; 557 return error;
557 558
558 for (i = 0; dcdbas_bin_attrs[i]; i++) {
559 error = sysfs_create_bin_file(&dev->dev.kobj,
560 dcdbas_bin_attrs[i]);
561 if (error) {
562 while (--i >= 0)
563 sysfs_remove_bin_file(&dev->dev.kobj,
564 dcdbas_bin_attrs[i]);
565 sysfs_remove_group(&dev->dev.kobj, &dcdbas_attr_group);
566 return error;
567 }
568 }
569
570 register_reboot_notifier(&dcdbas_reboot_nb); 559 register_reboot_notifier(&dcdbas_reboot_nb);
571 560
572 dev_info(&dev->dev, "%s (version %s)\n", 561 dev_info(&dev->dev, "%s (version %s)\n",
@@ -577,11 +566,7 @@ static int dcdbas_probe(struct platform_device *dev)
577 566
578static int dcdbas_remove(struct platform_device *dev) 567static int dcdbas_remove(struct platform_device *dev)
579{ 568{
580 int i;
581
582 unregister_reboot_notifier(&dcdbas_reboot_nb); 569 unregister_reboot_notifier(&dcdbas_reboot_nb);
583 for (i = 0; dcdbas_bin_attrs[i]; i++)
584 sysfs_remove_bin_file(&dev->dev.kobj, dcdbas_bin_attrs[i]);
585 sysfs_remove_group(&dev->dev.kobj, &dcdbas_attr_group); 570 sysfs_remove_group(&dev->dev.kobj, &dcdbas_attr_group);
586 571
587 return 0; 572 return 0;