Re: [PATCH v1 1/1] iio: adc: mxs-lradc-adc: Get rid of OF specifics
From: Jonathan Cameron
Date: Mon Jun 20 2022 - 15:42:50 EST
On Fri, 3 Jun 2022 18:10:06 +0100
Jonathan Cameron <jic23@xxxxxxxxxx> wrote:
> On Mon, 30 May 2022 20:33:24 +0300
> Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote:
>
> > First of all, the additional conversion from vIRQ, and this is exactly
> > what is returned by platform_get_irq_byname(), to vIRQ is not needed.
> Confusing sentence form. Perhaps:
>
> First, the additional conversion from vIRQ (returned by platform_get_irq_byname())
> to vIRQ is not needed.
>
> > Hence, drop no-op call to irq_of_parse_and_map().
> >
> > Second, assign the firmware node instead of of_node.
> >
> > Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
> Hi,
>
> Seems sensible to me, but I'd like a sanity check from someone more
> familiar with this driver.
This one has been outstanding for a few weeks. I'd still like
an Ack or similar form someone who knows this device well.
If no one has looked at it in a week or so I'll just go with
my judgement and pick it up.
Thanks,
Jonathan
>
> Thanks,
>
> Jonathan
>
> > ---
> > drivers/iio/adc/mxs-lradc-adc.c | 9 +++------
> > 1 file changed, 3 insertions(+), 6 deletions(-)
> >
> > diff --git a/drivers/iio/adc/mxs-lradc-adc.c b/drivers/iio/adc/mxs-lradc-adc.c
> > index bca79a93cbe4..25292bb8a13f 100644
> > --- a/drivers/iio/adc/mxs-lradc-adc.c
> > +++ b/drivers/iio/adc/mxs-lradc-adc.c
> > @@ -17,7 +17,6 @@
> > #include <linux/mfd/core.h>
> > #include <linux/mfd/mxs-lradc.h>
> > #include <linux/module.h>
> > -#include <linux/of_irq.h>
> > #include <linux/platform_device.h>
> > #include <linux/sysfs.h>
> >
> > @@ -692,7 +691,7 @@ static int mxs_lradc_adc_probe(struct platform_device *pdev)
> > struct mxs_lradc_adc *adc;
> > struct iio_dev *iio;
> > struct resource *iores;
> > - int ret, irq, virq, i, s, n;
> > + int ret, irq, i, s, n;
> > u64 scale_uv;
> > const char **irq_name;
> >
> > @@ -721,7 +720,7 @@ static int mxs_lradc_adc_probe(struct platform_device *pdev)
> > platform_set_drvdata(pdev, iio);
> >
> > iio->name = pdev->name;
> > - iio->dev.of_node = dev->parent->of_node;
> > + device_set_node(&iio->dev, dev_fwnode(dev->parent));
> > iio->info = &mxs_lradc_adc_iio_info;
> > iio->modes = INDIO_DIRECT_MODE;
> > iio->masklength = LRADC_MAX_TOTAL_CHANS;
> > @@ -747,9 +746,7 @@ static int mxs_lradc_adc_probe(struct platform_device *pdev)
> > if (irq < 0)
> > return irq;
> >
> > - virq = irq_of_parse_and_map(dev->parent->of_node, irq);
> > -
> > - ret = devm_request_irq(dev, virq, mxs_lradc_adc_handle_irq,
> > + ret = devm_request_irq(dev, irq, mxs_lradc_adc_handle_irq,
> > 0, irq_name[i], iio);
> > if (ret)
> > return ret;
>