Re: [PATCH v1 1/1] iio: adc: mxs-lradc-adc: Get rid of OF specifics
From: Jonathan Cameron
Date: Fri Jun 03 2022 - 13:01:12 EST
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;