mfd: sun4i-gpadc: Correct specified GPADC interrupt numbers
authorFuyao Kashizuku <fuyao@sjterm.com>
Wed, 27 Dec 2023 02:01:17 +0000 (10:01 +0800)
committerLee Jones <lee@kernel.org>
Fri, 23 Feb 2024 14:58:00 +0000 (14:58 +0000)
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@sjterm.com>
Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Link: https://lore.kernel.org/r/ZYuFbUUus9apiCpq@debian.cyg
Signed-off-by: Lee Jones <lee@kernel.org>
include/linux/mfd/sun4i-gpadc.h

index ea0ccf33a459efba083b6378a283e746414d6c62..021f820f9d52bd5ceadb420b61d32a25199982c3 100644 (file)
@@ -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