On Thu, 24 Oct 2024 22:05:09 +0300
Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:
> IIO core (ACPI part) provides a generic helper that may be used in
> the driver. Replace a variant of iio_get_acpi_device_name_and_data().
>
> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
This one briefly had me confused but is indeed fine because we never
get an id match for a device coming from an ACPI binding.
There is no way to make such a match (unlike DT where the naming
is enough).
So the else is sufficient.
applied.
> ---
> drivers/iio/light/isl29018.c | 25 ++++++-------------------
> 1 file changed, 6 insertions(+), 19 deletions(-)
>
> diff --git a/drivers/iio/light/isl29018.c b/drivers/iio/light/isl29018.c
> index 8dfc750e68c0..526ee5619d26 100644
> --- a/drivers/iio/light/isl29018.c
> +++ b/drivers/iio/light/isl29018.c
> @@ -687,20 +687,6 @@ static const struct isl29018_chip_info isl29018_chip_info_tbl[] = {
> },
> };
>
> -static const char *isl29018_match_acpi_device(struct device *dev, int *data)
> -{
> - const struct acpi_device_id *id;
> -
> - id = acpi_match_device(dev->driver->acpi_match_table, dev);
> -
> - if (!id)
> - return NULL;
> -
> - *data = (int)id->driver_data;
> -
> - return dev_name(dev);
> -}
> -
> static void isl29018_disable_regulator_action(void *_data)
> {
> struct isl29018_chip *chip = _data;
> @@ -716,9 +702,10 @@ static int isl29018_probe(struct i2c_client *client)
> const struct i2c_device_id *id = i2c_client_get_device_id(client);
> struct isl29018_chip *chip;
> struct iio_dev *indio_dev;
> + const void *ddata;
> + const char *name;
> + int dev_id;
> int err;
> - const char *name = NULL;
> - int dev_id = 0;
>
> indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*chip));
> if (!indio_dev)
> @@ -731,11 +718,11 @@ static int isl29018_probe(struct i2c_client *client)
> if (id) {
> name = id->name;
> dev_id = id->driver_data;
> + } else {
> + name = iio_get_acpi_device_name_and_data(&client->dev, &ddata);
> + dev_id = (intptr_t)ddata;
> }
>
> - if (ACPI_HANDLE(&client->dev))
> - name = isl29018_match_acpi_device(&client->dev, &dev_id);
> -
> mutex_init(&chip->lock);
>
> chip->type = dev_id;