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; >