Hi Andy, On Mon, May 30, 2022 at 2:33 PM 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. > 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> > --- > 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> #include <linux/property.h> needs to be included, otherwise the build fails. > - 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); I tried to apply the same change inside drivers/input/touchscreen/mxs-lradc-ts.c: --- a/drivers/input/touchscreen/mxs-lradc-ts.c +++ b/drivers/input/touchscreen/mxs-lradc-ts.c @@ -675,11 +675,9 @@ static int mxs_lradc_ts_probe(struct platform_device *pdev) if (irq < 0) return irq; - virq = irq_of_parse_and_map(node, irq); - mxs_lradc_ts_stop(ts); - ret = devm_request_irq(dev, virq, + ret = devm_request_irq(dev, irq, mxs_lradc_ts_handle_irq, 0, mxs_lradc_ts_irq_names[i], ts); if (ret) but I still get the following warning: [ 6.135583] ------------[ cut here ]------------ [ 6.140366] WARNING: CPU: 0 PID: 1 at drivers/base/platform.c:449 __platform_get_irq_byname+0x74/0x90 [ 6.151053] 0 is an invalid IRQ number [ 6.155201] Modules linked in: [ 6.158444] CPU: 0 PID: 1 Comm: swapper Not tainted 5.18.5-00001-g3e38be7e4832 #108 [ 6.166537] Hardware name: Freescale MXS (Device Tree) [ 6.172040] unwind_backtrace from show_stack+0x10/0x14 [ 6.177503] show_stack from __warn+0xc4/0x1cc [ 6.182356] __warn from warn_slowpath_fmt+0x90/0xc8 [ 6.187549] warn_slowpath_fmt from __platform_get_irq_byname+0x74/0x90 [ 6.194698] __platform_get_irq_byname from platform_get_irq_byname+0x10/0x30 [ 6.202286] platform_get_irq_byname from mxs_lradc_ts_probe+0x19c/0x380 [ 6.209216] mxs_lradc_ts_probe from platform_probe+0x58/0xb8 [ 6.215383] platform_probe from really_probe+0xfc/0x288 [ 6.220907] really_probe from __driver_probe_device+0x80/0xe4 [ 6.227145] __driver_probe_device from driver_probe_device+0x30/0xd8 [ 6.234010] driver_probe_device from __driver_attach+0x70/0xf4 [ 6.240137] __driver_attach from bus_for_each_dev+0x74/0xc0 [ 6.246195] bus_for_each_dev from bus_add_driver+0x154/0x1e8 [ 6.252359] bus_add_driver from driver_register+0x74/0x108 [ 6.258131] driver_register from do_one_initcall+0x8c/0x2fc [ 6.264198] do_one_initcall from kernel_init_freeable+0x184/0x210 [ 6.270588] kernel_init_freeable from kernel_init+0x10/0x108 [ 6.276756] kernel_init from ret_from_fork+0x14/0x3c [ 6.282224] Exception stack(0xc8819fb0 to 0xc8819ff8) [ 6.287444] 9fa0: 00000000 00000000 00000000 00000000 [ 6.295988] 9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 [ 6.304631] 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000 [ 6.311392] irq event stamp: 128211 [ 6.315220] hardirqs last enabled at (128221): [<c0069c44>] __up_console_sem+0x54/0x64 [ 6.323632] hardirqs last disabled at (128230): [<c0069c30>] __up_console_sem+0x40/0x64 [ 6.331821] softirqs last enabled at (128200): [<c00098e4>] __do_softirq+0x31c/0x4bc [ 6.340041] softirqs last disabled at (128191): [<c0020f04>] irq_exit+0x150/0x18c [ 6.347913] ---[ end trace 0000000000000000 ]--- [ 6.364587] input: mxs-lradc-ts as /devices/soc0/80000000.apb/80040000.apbx/80050000.lradc/mxs-lradc-ts/input/input0 Any suggestions? Thanks