2022-04-16 01:44:07

by Andy Shevchenko

[permalink] [raw]
Subject: [PATCH v1 1/1] iio: proximity: mb1232: Switch to use fwnode_irq_get()

We have OF-centric variant of fwnode_irq_get() in the driver.
Replace it with a call to an agnostic implementation.

Signed-off-by: Andy Shevchenko <[email protected]>
---
drivers/iio/proximity/mb1232.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/iio/proximity/mb1232.c b/drivers/iio/proximity/mb1232.c
index ad4b1fb2607a..0bca5f74de68 100644
--- a/drivers/iio/proximity/mb1232.c
+++ b/drivers/iio/proximity/mb1232.c
@@ -10,12 +10,14 @@
* https://www.maxbotix.com/documents/I2CXL-MaxSonar-EZ_Datasheet.pdf
*/

+#include <linux/bitops.h>
#include <linux/err.h>
#include <linux/i2c.h>
-#include <linux/of_irq.h>
#include <linux/delay.h>
+#include <linux/mod_devicetable.h>
#include <linux/module.h>
-#include <linux/bitops.h>
+#include <linux/property.h>
+
#include <linux/iio/iio.h>
#include <linux/iio/sysfs.h>
#include <linux/iio/buffer.h>
@@ -209,7 +211,7 @@ static int mb1232_probe(struct i2c_client *client,

init_completion(&data->ranging);

- data->irqnr = irq_of_parse_and_map(dev->of_node, 0);
+ data->irqnr = fwnode_irq_get(dev_fwnode(&client->dev), 0);
if (data->irqnr <= 0) {
/* usage of interrupt is optional */
data->irqnr = -1;
--
2.35.1


2022-04-16 13:57:21

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [PATCH v1 1/1] iio: proximity: mb1232: Switch to use fwnode_irq_get()

On Wed, 13 Apr 2022 21:31:23 +0300
Andy Shevchenko <[email protected]> wrote:

> We have OF-centric variant of fwnode_irq_get() in the driver.
> Replace it with a call to an agnostic implementation.
>
> Signed-off-by: Andy Shevchenko <[email protected]>

Whilst I 'think' this ends up being functionally identical
I'd like to leave it a little longer to see if Andreas has
time to take a look and verify this change is fine.

There seem to be subtle differences in the irq setup as the
new code does a sanity check on the domain being available
and defers if not which I don't think happens with the
existing code.

Thanks,

Jonathan


> ---
> drivers/iio/proximity/mb1232.c | 8 +++++---
> 1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/iio/proximity/mb1232.c b/drivers/iio/proximity/mb1232.c
> index ad4b1fb2607a..0bca5f74de68 100644
> --- a/drivers/iio/proximity/mb1232.c
> +++ b/drivers/iio/proximity/mb1232.c
> @@ -10,12 +10,14 @@
> * https://www.maxbotix.com/documents/I2CXL-MaxSonar-EZ_Datasheet.pdf
> */
>
> +#include <linux/bitops.h>
> #include <linux/err.h>
> #include <linux/i2c.h>
> -#include <linux/of_irq.h>
> #include <linux/delay.h>
> +#include <linux/mod_devicetable.h>
> #include <linux/module.h>
> -#include <linux/bitops.h>
> +#include <linux/property.h>
> +
> #include <linux/iio/iio.h>
> #include <linux/iio/sysfs.h>
> #include <linux/iio/buffer.h>
> @@ -209,7 +211,7 @@ static int mb1232_probe(struct i2c_client *client,
>
> init_completion(&data->ranging);
>
> - data->irqnr = irq_of_parse_and_map(dev->of_node, 0);
> + data->irqnr = fwnode_irq_get(dev_fwnode(&client->dev), 0);
> if (data->irqnr <= 0) {
> /* usage of interrupt is optional */
> data->irqnr = -1;

2022-04-20 01:28:31

by Andreas Klinger

[permalink] [raw]
Subject: Re: [PATCH v1 1/1] iio: proximity: mb1232: Switch to use fwnode_irq_get()


Jonathan Cameron <[email protected]> schrieb am Sa, 16. Apr 12:07:
> On Wed, 13 Apr 2022 21:31:23 +0300
> Andy Shevchenko <[email protected]> wrote:
>
> > We have OF-centric variant of fwnode_irq_get() in the driver.
> > Replace it with a call to an agnostic implementation.
> >
> > Signed-off-by: Andy Shevchenko <[email protected]>
>
> Whilst I 'think' this ends up being functionally identical
> I'd like to leave it a little longer to see if Andreas has
> time to take a look and verify this change is fine.
>
> There seem to be subtle differences in the irq setup as the
> new code does a sanity check on the domain being available
> and defers if not which I don't think happens with the
> existing code.

Anyway interrupts are optional and the driver will work without i don't see any
issue here.

Acked-by: Andreas Klinger <[email protected]>

>
> Thanks,
>
> Jonathan
>
>
> > ---
> > drivers/iio/proximity/mb1232.c | 8 +++++---
> > 1 file changed, 5 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/iio/proximity/mb1232.c b/drivers/iio/proximity/mb1232.c
> > index ad4b1fb2607a..0bca5f74de68 100644
> > --- a/drivers/iio/proximity/mb1232.c
> > +++ b/drivers/iio/proximity/mb1232.c
> > @@ -10,12 +10,14 @@
> > * https://www.maxbotix.com/documents/I2CXL-MaxSonar-EZ_Datasheet.pdf
> > */
> >
> > +#include <linux/bitops.h>
> > #include <linux/err.h>
> > #include <linux/i2c.h>
> > -#include <linux/of_irq.h>
> > #include <linux/delay.h>
> > +#include <linux/mod_devicetable.h>
> > #include <linux/module.h>
> > -#include <linux/bitops.h>
> > +#include <linux/property.h>
> > +
> > #include <linux/iio/iio.h>
> > #include <linux/iio/sysfs.h>
> > #include <linux/iio/buffer.h>
> > @@ -209,7 +211,7 @@ static int mb1232_probe(struct i2c_client *client,
> >
> > init_completion(&data->ranging);
> >
> > - data->irqnr = irq_of_parse_and_map(dev->of_node, 0);
> > + data->irqnr = fwnode_irq_get(dev_fwnode(&client->dev), 0);
> > if (data->irqnr <= 0) {
> > /* usage of interrupt is optional */
> > data->irqnr = -1;
>

--
Andreas Klinger
Grabenreith 27
84508 Burgkirchen
+49 8623 919966
[email protected]
http://www.it-klinger.de
http://www.grabenreith.de

2022-04-29 00:45:52

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [PATCH v1 1/1] iio: proximity: mb1232: Switch to use fwnode_irq_get()

On Tue, 19 Apr 2022 12:24:26 +0200
Andreas Klinger <[email protected]> wrote:

> Jonathan Cameron <[email protected]> schrieb am Sa, 16. Apr 12:07:
> > On Wed, 13 Apr 2022 21:31:23 +0300
> > Andy Shevchenko <[email protected]> wrote:
> >
> > > We have OF-centric variant of fwnode_irq_get() in the driver.
> > > Replace it with a call to an agnostic implementation.
> > >
> > > Signed-off-by: Andy Shevchenko <[email protected]>
> >
> > Whilst I 'think' this ends up being functionally identical
> > I'd like to leave it a little longer to see if Andreas has
> > time to take a look and verify this change is fine.
> >
> > There seem to be subtle differences in the irq setup as the
> > new code does a sanity check on the domain being available
> > and defers if not which I don't think happens with the
> > existing code.
>
> Anyway interrupts are optional and the driver will work without i don't see any
> issue here.
>
> Acked-by: Andreas Klinger <[email protected]>

Applied to the togreg branch of iio.git and pushed out as testing to
see if 0-day can find anything we missed.

Thanks,

Jonathan

>
> >
> > Thanks,
> >
> > Jonathan
> >
> >
> > > ---
> > > drivers/iio/proximity/mb1232.c | 8 +++++---
> > > 1 file changed, 5 insertions(+), 3 deletions(-)
> > >
> > > diff --git a/drivers/iio/proximity/mb1232.c b/drivers/iio/proximity/mb1232.c
> > > index ad4b1fb2607a..0bca5f74de68 100644
> > > --- a/drivers/iio/proximity/mb1232.c
> > > +++ b/drivers/iio/proximity/mb1232.c
> > > @@ -10,12 +10,14 @@
> > > * https://www.maxbotix.com/documents/I2CXL-MaxSonar-EZ_Datasheet.pdf
> > > */
> > >
> > > +#include <linux/bitops.h>
> > > #include <linux/err.h>
> > > #include <linux/i2c.h>
> > > -#include <linux/of_irq.h>
> > > #include <linux/delay.h>
> > > +#include <linux/mod_devicetable.h>
> > > #include <linux/module.h>
> > > -#include <linux/bitops.h>
> > > +#include <linux/property.h>
> > > +
> > > #include <linux/iio/iio.h>
> > > #include <linux/iio/sysfs.h>
> > > #include <linux/iio/buffer.h>
> > > @@ -209,7 +211,7 @@ static int mb1232_probe(struct i2c_client *client,
> > >
> > > init_completion(&data->ranging);
> > >
> > > - data->irqnr = irq_of_parse_and_map(dev->of_node, 0);
> > > + data->irqnr = fwnode_irq_get(dev_fwnode(&client->dev), 0);
> > > if (data->irqnr <= 0) {
> > > /* usage of interrupt is optional */
> > > data->irqnr = -1;
> >
>