diff mbox series

[v1,1/1] iio: proximity: sx_common: Allow IIO core to take care of firmware node

Message ID 20220530174326.1381-1-andriy.shevchenko@linux.intel.com (mailing list archive)
State Accepted
Headers show
Series [v1,1/1] iio: proximity: sx_common: Allow IIO core to take care of firmware node | expand

Commit Message

Andy Shevchenko May 30, 2022, 5:43 p.m. UTC
IIO core correctly will take care of firmware node if it's not set in
the driver. Drop ACPI and OF specifics from the driver and allow IIO
core to handle this.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/iio/proximity/sx_common.c | 3 ---
 1 file changed, 3 deletions(-)

Comments

Jonathan Cameron June 3, 2022, 5:06 p.m. UTC | #1
On Mon, 30 May 2022 20:43:26 +0300
Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:

> IIO core correctly will take care of firmware node if it's not set in
> the driver. Drop ACPI and OF specifics from the driver and allow IIO
> core to handle this.
> 
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Looks fine to me.  As such I'll apply it now, but Gwendal, you've
been active with this driver recently so if you have time to sanity check
that would be great.  Once I've caught up with new stuff I plan to check
where we are with your various series on this driver.

Thanks,

Jonathan

> ---
>  drivers/iio/proximity/sx_common.c | 3 ---
>  1 file changed, 3 deletions(-)
> 
> diff --git a/drivers/iio/proximity/sx_common.c b/drivers/iio/proximity/sx_common.c
> index 8ad814d96b7e..6bb68c1835da 100644
> --- a/drivers/iio/proximity/sx_common.c
> +++ b/drivers/iio/proximity/sx_common.c
> @@ -5,7 +5,6 @@
>   * Common part of most Semtech SAR sensor.
>   */
>  
> -#include <linux/acpi.h>
>  #include <linux/bitops.h>
>  #include <linux/byteorder/generic.h>
>  #include <linux/delay.h>
> @@ -520,8 +519,6 @@ int sx_common_probe(struct i2c_client *client,
>  	if (ret)
>  		return dev_err_probe(dev, ret, "error reading WHOAMI\n");
>  
> -	ACPI_COMPANION_SET(&indio_dev->dev, ACPI_COMPANION(dev));
> -	indio_dev->dev.of_node = client->dev.of_node;
>  	indio_dev->modes = INDIO_DIRECT_MODE;
>  
>  	indio_dev->channels =  data->chip_info->iio_channels;
Gwendal Grignou June 13, 2022, 9:25 p.m. UTC | #2
The reason we have the code ACPI_COMPANION_SET and dev.of_node set (by
commit 74a53a959028e ("iio:proximity:sx_common: Fix device property
parsing on DT systems") from Stephen is we are getting device propery
in ->get_default_reg(), which is called in sx_common_init_device(),
before devm_iio_device_register().

We have the same code path in other driver, like adc/stm32-adc.c,
where indio_dev->dev.of_node is set manually to be able to set the
resolution based on device tree properties.

Gwendal.

On Fri, Jun 3, 2022 at 9:57 AM Jonathan Cameron <jic23@kernel.org> wrote:
>
> On Mon, 30 May 2022 20:43:26 +0300
> Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:
>
> > IIO core correctly will take care of firmware node if it's not set in
> > the driver. Drop ACPI and OF specifics from the driver and allow IIO
> > core to handle this.
> >
> > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> Looks fine to me.  As such I'll apply it now, but Gwendal, you've
> been active with this driver recently so if you have time to sanity check
> that would be great.  Once I've caught up with new stuff I plan to check
> where we are with your various series on this driver.
>
> Thanks,
>
> Jonathan
>
> > ---
> >  drivers/iio/proximity/sx_common.c | 3 ---
> >  1 file changed, 3 deletions(-)
> >
> > diff --git a/drivers/iio/proximity/sx_common.c b/drivers/iio/proximity/sx_common.c
> > index 8ad814d96b7e..6bb68c1835da 100644
> > --- a/drivers/iio/proximity/sx_common.c
> > +++ b/drivers/iio/proximity/sx_common.c
> > @@ -5,7 +5,6 @@
> >   * Common part of most Semtech SAR sensor.
> >   */
> >
> > -#include <linux/acpi.h>
> >  #include <linux/bitops.h>
> >  #include <linux/byteorder/generic.h>
> >  #include <linux/delay.h>
> > @@ -520,8 +519,6 @@ int sx_common_probe(struct i2c_client *client,
> >       if (ret)
> >               return dev_err_probe(dev, ret, "error reading WHOAMI\n");
> >
> > -     ACPI_COMPANION_SET(&indio_dev->dev, ACPI_COMPANION(dev));
> > -     indio_dev->dev.of_node = client->dev.of_node;
> >       indio_dev->modes = INDIO_DIRECT_MODE;
> >
> >       indio_dev->channels =  data->chip_info->iio_channels;
>
Andy Shevchenko June 14, 2022, 9:27 a.m. UTC | #3
On Mon, Jun 13, 2022 at 11:31 PM Gwendal Grignou <gwendal@chromium.org> wrote:
>
> The reason we have the code ACPI_COMPANION_SET and dev.of_node set (by
> commit 74a53a959028e ("iio:proximity:sx_common: Fix device property
> parsing on DT systems") from Stephen is we are getting device propery
> in ->get_default_reg(), which is called in sx_common_init_device(),
> before devm_iio_device_register().
>
> We have the same code path in other driver, like adc/stm32-adc.c,
> where indio_dev->dev.of_node is set manually to be able to set the
> resolution based on device tree properties.

Ah, thanks for this insight! I will rework the patch accordingly (yes,
there is something to clean up even in this case).

> On Fri, Jun 3, 2022 at 9:57 AM Jonathan Cameron <jic23@kernel.org> wrote:
> > On Mon, 30 May 2022 20:43:26 +0300
> > Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:
> >
> > > IIO core correctly will take care of firmware node if it's not set in
> > > the driver. Drop ACPI and OF specifics from the driver and allow IIO
> > > core to handle this.
> > >
> > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > Looks fine to me.  As such I'll apply it now, but Gwendal, you've
> > been active with this driver recently so if you have time to sanity check
> > that would be great.  Once I've caught up with new stuff I plan to check
> > where we are with your various series on this driver.
Jonathan Cameron June 14, 2022, 10:53 a.m. UTC | #4
On Tue, 14 Jun 2022 11:27:21 +0200
Andy Shevchenko <andy.shevchenko@gmail.com> wrote:

> On Mon, Jun 13, 2022 at 11:31 PM Gwendal Grignou <gwendal@chromium.org> wrote:
> >
> > The reason we have the code ACPI_COMPANION_SET and dev.of_node set (by
> > commit 74a53a959028e ("iio:proximity:sx_common: Fix device property
> > parsing on DT systems") from Stephen is we are getting device propery
> > in ->get_default_reg(), which is called in sx_common_init_device(),
> > before devm_iio_device_register().
> >
> > We have the same code path in other driver, like adc/stm32-adc.c,
> > where indio_dev->dev.of_node is set manually to be able to set the
> > resolution based on device tree properties.  
> 
> Ah, thanks for this insight! I will rework the patch accordingly (yes,
> there is something to clean up even in this case).
> 
> > On Fri, Jun 3, 2022 at 9:57 AM Jonathan Cameron <jic23@kernel.org> wrote:  
> > > On Mon, 30 May 2022 20:43:26 +0300
> > > Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:
> > >  
> > > > IIO core correctly will take care of firmware node if it's not set in
> > > > the driver. Drop ACPI and OF specifics from the driver and allow IIO
> > > > core to handle this.
> > > >
> > > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>  
> > > Looks fine to me.  As such I'll apply it now, but Gwendal, you've
> > > been active with this driver recently so if you have time to sanity check
> > > that would be great.  Once I've caught up with new stuff I plan to check
> > > where we are with your various series on this driver.  
> 
Dropped patch
diff mbox series

Patch

diff --git a/drivers/iio/proximity/sx_common.c b/drivers/iio/proximity/sx_common.c
index 8ad814d96b7e..6bb68c1835da 100644
--- a/drivers/iio/proximity/sx_common.c
+++ b/drivers/iio/proximity/sx_common.c
@@ -5,7 +5,6 @@ 
  * Common part of most Semtech SAR sensor.
  */
 
-#include <linux/acpi.h>
 #include <linux/bitops.h>
 #include <linux/byteorder/generic.h>
 #include <linux/delay.h>
@@ -520,8 +519,6 @@  int sx_common_probe(struct i2c_client *client,
 	if (ret)
 		return dev_err_probe(dev, ret, "error reading WHOAMI\n");
 
-	ACPI_COMPANION_SET(&indio_dev->dev, ACPI_COMPANION(dev));
-	indio_dev->dev.of_node = client->dev.of_node;
 	indio_dev->modes = INDIO_DIRECT_MODE;
 
 	indio_dev->channels =  data->chip_info->iio_channels;