Unverified Commit d2b16853 authored by Jerome Brunet's avatar Jerome Brunet Committed by Ilpo Järvinen
Browse files

platform: arm64: lenovo-yoga-c630: use the auxiliary device creation helper



The auxiliary device creation of this driver is simple enough to
use the available auxiliary device creation helper.

Use it and remove some boilerplate code.

Signed-off-by: default avatarJerome Brunet <jbrunet@baylibre.com>
Reviewed-by: default avatarBryan O'Donoghue <bryan.odonoghue@linaro.org>
Link: https://lore.kernel.org/r/20250610-yoga-aux-v1-1-d6115aa1683c@baylibre.com


Reviewed-by: default avatarIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: default avatarIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
parent dce77641
Loading
Loading
Loading
Loading
+3 −37
Original line number Diff line number Diff line
@@ -191,50 +191,16 @@ void yoga_c630_ec_unregister_notify(struct yoga_c630_ec *ec, struct notifier_blo
}
EXPORT_SYMBOL_GPL(yoga_c630_ec_unregister_notify);

static void yoga_c630_aux_release(struct device *dev)
{
	struct auxiliary_device *adev = to_auxiliary_dev(dev);

	kfree(adev);
}

static void yoga_c630_aux_remove(void *data)
{
	struct auxiliary_device *adev = data;

	auxiliary_device_delete(adev);
	auxiliary_device_uninit(adev);
}

static int yoga_c630_aux_init(struct device *parent, const char *name,
			      struct yoga_c630_ec *ec)
{
	struct auxiliary_device *adev;
	int ret;

	adev = kzalloc(sizeof(*adev), GFP_KERNEL);
	adev = devm_auxiliary_device_create(parent, name, ec);
	if (!adev)
		return -ENOMEM;

	adev->name = name;
	adev->id = 0;
	adev->dev.parent = parent;
	adev->dev.release = yoga_c630_aux_release;
	adev->dev.platform_data = ec;

	ret = auxiliary_device_init(adev);
	if (ret) {
		kfree(adev);
		return ret;
	}

	ret = auxiliary_device_add(adev);
	if (ret) {
		auxiliary_device_uninit(adev);
		return ret;
	}
		return -ENODEV;

	return devm_add_action_or_reset(parent, yoga_c630_aux_remove, adev);
	return 0;
}

static int yoga_c630_ec_probe(struct i2c_client *client)