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>
#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