Re: [PATCH v1 1/1] iio: adc: mxs-lradc-adc: Get rid of OF specifics

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux