Re: [PATCH 00/10] platform/x86: toshiba_acpi: move acpi add/remove to device-managed routines

From: Jonathan Cameron
Date: Mon Mar 29 2021 - 08:39:13 EST


On Wed, 24 Mar 2021 14:55:38 +0200
Alexandru Ardelean <aardelean@xxxxxxxxxxx> wrote:

> This changeset tries to do a conversion of the toshiba_acpi driver to use
> only device-managed routines. The driver registers as a singleton, so no
> more than one device can be registered at a time.
>
> My main intent here is to try to convert the iio_device_alloc() and
> iio_device_register() to their devm_ variants.
>
> Usually, when converting a registration call to device-managed variant, the
> init order must be preserved. And the deregistration order must be a mirror
> of the registration (in reverse order).
>
> This change tries to do that, by using devm_ variants where available and
> devm_add_action_or_reset() where this isn't possible.
> Some deregistration ordering is changed, because it wasn't exactly
> mirroring (in reverse) the init order.
>
> For the IIO subsystem, the toshiba_acpi driver is the only user of
> iio_device_alloc(). If this changeset is accepted (after discussion), I
> will propose to remove the iio_device_alloc() function.
>
> While I admit this may look like an overzealous effort to use devm_
> everywhere (in IIO at least), for me it's a fun/interesting excercise.
hmm. I am dubious about 'removing' the support for non devm_ in the long
run because it can lead to requiring fiddly changes in existing drivers
(like this one :) and I don't want to put that barrier in front of anyone
using IIO.

However, I'm more than happy to see them used in very few drivers and
nice warning text added to suggest people might want to look at whether
then can move to a device managed probe flow

Jonathan

>
> Alexandru Ardelean (10):
> platform/x86: toshiba_acpi: bind life-time of toshiba_acpi_dev to
> parent
> platform/x86: toshiba_acpi: use devm_add_action_or_reset() for
> singleton clear
> platform/x86: toshiba_acpi: bind registration of miscdev object to
> parent
> platform/x86: toshiba_acpi: use device-managed functions for input
> device
> platform/x86: toshiba_acpi: register backlight with device-managed
> variant
> platform/x86: toshiba_acpi: use devm_led_classdev_register() for LEDs
> platform/x86: toshiba_acpi: use device-managed functions for
> accelerometer
> platform/x86: toshiba_acpi: use device-managed for wwan_rfkill
> management
> platform/x86: toshiba_acpi: use device-managed for sysfs removal
> platform/x86: toshiba_acpi: bind proc entries creation to parent
>
> drivers/platform/x86/toshiba_acpi.c | 249 +++++++++++++++++-----------
> 1 file changed, 150 insertions(+), 99 deletions(-)
>