Re: [PATCH] mfd: sun4i-gpadc: adaptation interrupt number
From: Jernej Škrabec
Date: Tue Jan 09 2024 - 15:20:03 EST
Dne sreda, 27. december 2023 ob 03:01:17 CET je Fuyao Kashizuku napisal(a):
> The identifiers are used as IRQ resource numbers, where 0 is treated
> specially.
>
> This fixes sun4i-gpadc-iio probe failed when request irq.
>
> The backstack:
> WARNING: CPU: 3 PID: 1 at drivers/base/platform.c:451
> __platform_get_irq_byname+0xb8/0xc4
> 0 is an invalid IRQ number
> Modules linked in:
> CPU: 3 PID: 1 Comm: swapper/0 Not tainted 6.7.0-rc6 #9
> Hardware name: Allwinner sun8i Family
> unwind_backtrace
> show_stack
> dump_stack_lvl
> __warn
> warn_slowpath_fmt
> __platform_get_irq_byname
> platform_get_irq_byname
> sun4i_irq_init
> sun4i_gpadc_probe
> platform_probe
> really_probe
> __driver_probe_device
> driver_probe_device
> __driver_attach
> bus_for_each_dev
> bus_add_driver
> driver_register
> do_one_initcall
> do_initcall_level
> do_initcalls
> kernel_init_freeable
> kernel_init
>
> Log reports:
> sun4i-gpadc-iio sun6i-a31-gpadc-iio.0: error -EINVAL: IRQ FIFO_DATA_PENDING
> not found
> sun4i-gpadc-iio: probe of sun6i-a31-gpadc-iio.0 failed with error -22
>
> Signed-off-by: Fuyao Kashizuku <fuyao@xxxxxxxxxx>
Acked-by: Jernej Skrabec <jernej.skrabec@xxxxxxxxx>
Best regards,
Jernej
> ---
> Changes in v2:
> - Fix the commit message.
> - Add the backstack.
> - Add the log reports.
> - Use the correct full name and email address.
> - Correct the subsystem to mfd.
> - Link to v1: https://lore.kernel.org/lkml/YwdhTlk+9h+9Mrwm@scg/
>
> include/linux/mfd/sun4i-gpadc.h | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/include/linux/mfd/sun4i-gpadc.h b/include/linux/mfd/sun4i-gpadc.h
> index ea0ccf33a459..021f820f9d52 100644
> --- a/include/linux/mfd/sun4i-gpadc.h
> +++ b/include/linux/mfd/sun4i-gpadc.h
> @@ -81,8 +81,8 @@
> #define SUN4I_GPADC_TEMP_DATA 0x20
> #define SUN4I_GPADC_DATA 0x24
>
> -#define SUN4I_GPADC_IRQ_FIFO_DATA 0
> -#define SUN4I_GPADC_IRQ_TEMP_DATA 1
> +#define SUN4I_GPADC_IRQ_FIFO_DATA 1
> +#define SUN4I_GPADC_IRQ_TEMP_DATA 2
>
> /* 10s delay before suspending the IP */
> #define SUN4I_GPADC_AUTOSUSPEND_DELAY 10000
>