Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4c33dea7 authored by Greg KH's avatar Greg KH Committed by Greg Kroah-Hartman
Browse files

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: default avatarGreg 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(-)
parent f7998780
Loading
Loading
Loading
Loading
+2 −17
Original line number Diff line number Diff line
@@ -535,11 +535,12 @@ static struct attribute *dcdbas_dev_attrs[] = {

static struct attribute_group dcdbas_attr_group = {
	.attrs = dcdbas_dev_attrs,
	.bin_attrs = dcdbas_bin_attrs,
};

static int dcdbas_probe(struct platform_device *dev)
{
	int i, error;
	int error;

	host_control_action = HC_ACTION_NONE;
	host_control_smi_type = HC_SMITYPE_NONE;
@@ -555,18 +556,6 @@ static int dcdbas_probe(struct platform_device *dev)
	if (error)
		return error;

	for (i = 0; dcdbas_bin_attrs[i]; i++) {
		error = sysfs_create_bin_file(&dev->dev.kobj,
					      dcdbas_bin_attrs[i]);
		if (error) {
			while (--i >= 0)
				sysfs_remove_bin_file(&dev->dev.kobj,
						      dcdbas_bin_attrs[i]);
			sysfs_remove_group(&dev->dev.kobj, &dcdbas_attr_group);
			return error;
		}
	}

	register_reboot_notifier(&dcdbas_reboot_nb);

	dev_info(&dev->dev, "%s (version %s)\n",
@@ -577,11 +566,7 @@ static int dcdbas_probe(struct platform_device *dev)

static int dcdbas_remove(struct platform_device *dev)
{
	int i;

	unregister_reboot_notifier(&dcdbas_reboot_nb);
	for (i = 0; dcdbas_bin_attrs[i]; i++)
		sysfs_remove_bin_file(&dev->dev.kobj, dcdbas_bin_attrs[i]);
	sysfs_remove_group(&dev->dev.kobj, &dcdbas_attr_group);

	return 0;