tree: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git gpiochip-no-driver-h head: df771cce328bbd37333797d0df3471c2e03ecb03 commit: df771cce328bbd37333797d0df3471c2e03ecb03 [5/5] gpio: Make the legacy <linux/gpio.h> consumer-only config: arm-omap1_defconfig (https://download.01.org/0day-ci/archive/20230129/202301290451.rXX4STQA-lkp@xxxxxxxxx/config) compiler: clang version 16.0.0 (https://github.com/llvm/llvm-project 4196ca3278f78c6e19246e54ab0ecb364e37d66a) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # install arm cross compiling tool for clang build # apt-get install binutils-arm-linux-gnueabi # https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git/commit/?id=df771cce328bbd37333797d0df3471c2e03ecb03 git remote add linusw-gpio https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git git fetch --no-tags linusw-gpio gpiochip-no-driver-h git checkout df771cce328bbd37333797d0df3471c2e03ecb03 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm olddefconfig COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm SHELL=/bin/bash If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot <lkp@xxxxxxxxx> All errors (new ones prefixed by >>): >> arch/arm/mach-omap1/irq.c:236:11: error: call to undeclared function 'irq_domain_add_legacy'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] domain = irq_domain_add_legacy(NULL, nr_irqs, irq_base, 0, ^ >> arch/arm/mach-omap1/irq.c:237:13: error: use of undeclared identifier 'irq_domain_simple_ops' &irq_domain_simple_ops, NULL); ^ >> arch/arm/mach-omap1/irq.c:269:23: error: call to undeclared function 'irq_find_mapping'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] d = irq_get_irq_data(irq_find_mapping(domain, omap_l2_irq)); ^ 3 errors generated. vim +/irq_domain_add_legacy +236 arch/arm/mach-omap1/irq.c 55b44774438959 arch/arm/mach-omap1/irq.c Tony Lindgren 2015-05-20 219 55b44774438959 arch/arm/mach-omap1/irq.c Tony Lindgren 2015-05-20 220 for (i = 0; i < irq_bank_count; i++) { 55b44774438959 arch/arm/mach-omap1/irq.c Tony Lindgren 2015-05-20 221 irq_banks[i].va = ioremap(irq_banks[i].base_reg, 0xff); 55b44774438959 arch/arm/mach-omap1/irq.c Tony Lindgren 2015-05-20 222 if (WARN_ON(!irq_banks[i].va)) 55b44774438959 arch/arm/mach-omap1/irq.c Tony Lindgren 2015-05-20 223 return; 55b44774438959 arch/arm/mach-omap1/irq.c Tony Lindgren 2015-05-20 224 } 55b44774438959 arch/arm/mach-omap1/irq.c Tony Lindgren 2015-05-20 225 55b44774438959 arch/arm/mach-omap1/irq.c Tony Lindgren 2015-05-20 226 nr_irqs = irq_bank_count * 32; 55b44774438959 arch/arm/mach-omap1/irq.c Tony Lindgren 2015-05-20 227 55b44774438959 arch/arm/mach-omap1/irq.c Tony Lindgren 2015-05-20 228 irq_base = irq_alloc_descs(-1, 0, nr_irqs, 0); 55b44774438959 arch/arm/mach-omap1/irq.c Tony Lindgren 2015-05-20 229 if (irq_base < 0) { 55b44774438959 arch/arm/mach-omap1/irq.c Tony Lindgren 2015-05-20 230 pr_warn("Couldn't allocate IRQ numbers\n"); 55b44774438959 arch/arm/mach-omap1/irq.c Tony Lindgren 2015-05-20 231 irq_base = 0; 55b44774438959 arch/arm/mach-omap1/irq.c Tony Lindgren 2015-05-20 232 } b694331cfb2ec3 arch/arm/mach-omap1/irq.c Tony Lindgren 2015-05-20 233 omap_l2_irq = cpu_is_omap7xx() ? irq_base + 1 : irq_base; 685e2d08c54b1a arch/arm/mach-omap1/irq.c Tony Lindgren 2015-05-20 234 omap_l2_irq -= NR_IRQS_LEGACY; 55b44774438959 arch/arm/mach-omap1/irq.c Tony Lindgren 2015-05-20 235 55b44774438959 arch/arm/mach-omap1/irq.c Tony Lindgren 2015-05-20 @236 domain = irq_domain_add_legacy(NULL, nr_irqs, irq_base, 0, 55b44774438959 arch/arm/mach-omap1/irq.c Tony Lindgren 2015-05-20 @237 &irq_domain_simple_ops, NULL); 55b44774438959 arch/arm/mach-omap1/irq.c Tony Lindgren 2015-05-20 238 55b44774438959 arch/arm/mach-omap1/irq.c Tony Lindgren 2015-05-20 239 pr_info("Total of %lu interrupts in %i interrupt banks\n", 55b44774438959 arch/arm/mach-omap1/irq.c Tony Lindgren 2015-05-20 240 nr_irqs, irq_bank_count); ^1da177e4c3f41 arch/arm/mach-omap/irq.c Linus Torvalds 2005-04-16 241 ^1da177e4c3f41 arch/arm/mach-omap/irq.c Linus Torvalds 2005-04-16 242 /* Mask and clear all interrupts */ ^1da177e4c3f41 arch/arm/mach-omap/irq.c Linus Torvalds 2005-04-16 243 for (i = 0; i < irq_bank_count; i++) { ^1da177e4c3f41 arch/arm/mach-omap/irq.c Linus Torvalds 2005-04-16 244 irq_bank_writel(~0x0, i, IRQ_MIR_REG_OFFSET); ^1da177e4c3f41 arch/arm/mach-omap/irq.c Linus Torvalds 2005-04-16 245 irq_bank_writel(0x0, i, IRQ_ITR_REG_OFFSET); ^1da177e4c3f41 arch/arm/mach-omap/irq.c Linus Torvalds 2005-04-16 246 } ^1da177e4c3f41 arch/arm/mach-omap/irq.c Linus Torvalds 2005-04-16 247 ^1da177e4c3f41 arch/arm/mach-omap/irq.c Linus Torvalds 2005-04-16 248 /* Clear any pending interrupts */ ^1da177e4c3f41 arch/arm/mach-omap/irq.c Linus Torvalds 2005-04-16 249 irq_bank_writel(0x03, 0, IRQ_CONTROL_REG_OFFSET); ^1da177e4c3f41 arch/arm/mach-omap/irq.c Linus Torvalds 2005-04-16 250 irq_bank_writel(0x03, 1, IRQ_CONTROL_REG_OFFSET); ^1da177e4c3f41 arch/arm/mach-omap/irq.c Linus Torvalds 2005-04-16 251 ^1da177e4c3f41 arch/arm/mach-omap/irq.c Linus Torvalds 2005-04-16 252 /* Enable interrupts in global mask */ 59185eeeaad1f0 arch/arm/mach-omap1/irq.c Zebediah C. McClure 2009-03-23 253 if (cpu_is_omap7xx()) ^1da177e4c3f41 arch/arm/mach-omap/irq.c Linus Torvalds 2005-04-16 254 irq_bank_writel(0x0, 0, IRQ_GMR_REG_OFFSET); ^1da177e4c3f41 arch/arm/mach-omap/irq.c Linus Torvalds 2005-04-16 255 ^1da177e4c3f41 arch/arm/mach-omap/irq.c Linus Torvalds 2005-04-16 256 /* Install the interrupt handlers for each bank */ ^1da177e4c3f41 arch/arm/mach-omap/irq.c Linus Torvalds 2005-04-16 257 for (i = 0; i < irq_bank_count; i++) { ^1da177e4c3f41 arch/arm/mach-omap/irq.c Linus Torvalds 2005-04-16 258 for (j = i * 32; j < (i + 1) * 32; j++) { ^1da177e4c3f41 arch/arm/mach-omap/irq.c Linus Torvalds 2005-04-16 259 int irq_trigger; ^1da177e4c3f41 arch/arm/mach-omap/irq.c Linus Torvalds 2005-04-16 260 ^1da177e4c3f41 arch/arm/mach-omap/irq.c Linus Torvalds 2005-04-16 261 irq_trigger = irq_banks[i].trigger_map >> IRQ_BIT(j); ^1da177e4c3f41 arch/arm/mach-omap/irq.c Linus Torvalds 2005-04-16 262 omap_irq_set_cfg(j, 0, 0, irq_trigger); e8d36d5dbb6a6e arch/arm/mach-omap1/irq.c Rob Herring 2015-07-27 263 irq_clear_status_flags(j, IRQ_NOREQUEST); ^1da177e4c3f41 arch/arm/mach-omap/irq.c Linus Torvalds 2005-04-16 264 } 55b44774438959 arch/arm/mach-omap1/irq.c Tony Lindgren 2015-05-20 265 omap_alloc_gc(irq_banks[i].va, irq_base + i * 32, 32); ^1da177e4c3f41 arch/arm/mach-omap/irq.c Linus Torvalds 2005-04-16 266 } ^1da177e4c3f41 arch/arm/mach-omap/irq.c Linus Torvalds 2005-04-16 267 ^1da177e4c3f41 arch/arm/mach-omap/irq.c Linus Torvalds 2005-04-16 268 /* Unmask level 2 handler */ b694331cfb2ec3 arch/arm/mach-omap1/irq.c Tony Lindgren 2015-05-20 @269 d = irq_get_irq_data(irq_find_mapping(domain, omap_l2_irq)); :::::: The code at line 236 was first introduced by commit :::::: 55b44774438959a957e717ecbdd9f2874b07ab31 ARM: OMAP1: Switch to use generic irqchip in preparation for sparse IRQ :::::: TO: Tony Lindgren <tony@xxxxxxxxxxx> :::::: CC: Tony Lindgren <tony@xxxxxxxxxxx> -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests