diff mbox series

[v3,20/24] iio: light: isl29018: Replace a variant of iio_get_acpi_device_name_and_data()

Message ID 20241024191200.229894-21-andriy.shevchenko@linux.intel.com (mailing list archive)
State Accepted
Headers show
Series iio: Clean up acpi_match_device() use cases | expand

Commit Message

Andy Shevchenko Oct. 24, 2024, 7:05 p.m. UTC
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>
---
 drivers/iio/light/isl29018.c | 25 ++++++-------------------
 1 file changed, 6 insertions(+), 19 deletions(-)

Comments

Jonathan Cameron Oct. 26, 2024, 11:50 a.m. UTC | #1
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;
diff mbox series

Patch

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;