Message ID | 20250211-aux-device-create-helper-v3-4-7edb50524909@baylibre.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | driver core: auxiliary bus: add device creation helper | expand |
Context | Check | Description |
---|---|---|
bjorn/pre-ci_am | success | Success |
bjorn/build-rv32-defconfig | success | build-rv32-defconfig |
bjorn/build-rv64-clang-allmodconfig | success | build-rv64-clang-allmodconfig |
bjorn/build-rv64-gcc-allmodconfig | success | build-rv64-gcc-allmodconfig |
bjorn/build-rv64-nommu-k210-defconfig | success | build-rv64-nommu-k210-defconfig |
bjorn/build-rv64-nommu-k210-virt | success | build-rv64-nommu-k210-virt |
bjorn/checkpatch | success | checkpatch |
bjorn/dtb-warn-rv64 | success | dtb-warn-rv64 |
bjorn/header-inline | success | header-inline |
bjorn/kdoc | success | kdoc |
bjorn/module-param | success | module-param |
bjorn/verify-fixes | success | verify-fixes |
bjorn/verify-signedoff | success | verify-signedoff |
On Tue, 11 Feb 2025, Jerome Brunet wrote: > 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: Jerome Brunet <jbrunet@baylibre.com> > --- > drivers/platform/arm64/lenovo-yoga-c630.c | 42 +++---------------------------- > 1 file changed, 4 insertions(+), 38 deletions(-) > > diff --git a/drivers/platform/arm64/lenovo-yoga-c630.c b/drivers/platform/arm64/lenovo-yoga-c630.c > index 1f05c9a6a89d5ee146144062f5d2e36795c56639..921a93d4ea39ac54344cc964e2805e974cc7e808 100644 > --- a/drivers/platform/arm64/lenovo-yoga-c630.c > +++ b/drivers/platform/arm64/lenovo-yoga-c630.c > @@ -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); > - 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; > - } > + adev = devm_auxiliary_device_create(parent, name, ec, 0); > + if (IS_ERR(adev)) > + return PTR_ERR(adev); > > - return devm_add_action_or_reset(parent, yoga_c630_aux_remove, adev); > + return 0; return PTR_ERR_OR_ZERO() > } > > static int yoga_c630_ec_probe(struct i2c_client *client) > >
diff --git a/drivers/platform/arm64/lenovo-yoga-c630.c b/drivers/platform/arm64/lenovo-yoga-c630.c index 1f05c9a6a89d5ee146144062f5d2e36795c56639..921a93d4ea39ac54344cc964e2805e974cc7e808 100644 --- a/drivers/platform/arm64/lenovo-yoga-c630.c +++ b/drivers/platform/arm64/lenovo-yoga-c630.c @@ -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); - 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; - } + adev = devm_auxiliary_device_create(parent, name, ec, 0); + if (IS_ERR(adev)) + return PTR_ERR(adev); - return devm_add_action_or_reset(parent, yoga_c630_aux_remove, adev); + return 0; } static int yoga_c630_ec_probe(struct i2c_client *client)
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: Jerome Brunet <jbrunet@baylibre.com> --- drivers/platform/arm64/lenovo-yoga-c630.c | 42 +++---------------------------- 1 file changed, 4 insertions(+), 38 deletions(-)