Re: [PATCH v1 1/1] iio: adc: mxs-lradc-adc: Get rid of OF specifics
From: Fabio Estevam
Date: Mon Jun 20 2022 - 17:14:09 EST
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