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