From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============0978120929480360029==" MIME-Version: 1.0 From: kernel test robot To: kbuild-all@lists.01.org Subject: [intel-lts:5.10/KMB-yocto 58/62] drivers/spi/spi-dw-core.c:507:2: error: implicit declaration of function 'dw_spi_dual_quad_config' Date: Fri, 10 Dec 2021 08:00:02 +0800 Message-ID: <202112100716.eAbKARVp-lkp@intel.com> List-Id: --===============0978120929480360029== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable tree: https://github.com/intel/linux-intel-lts.git 5.10/KMB-yocto head: afd0620ed0e5ce91d03f51deb2e551721ba97640 commit: de6f8390867e1796aa6ad8d0603a8c7676e54fac [58/62] SPI DUAL QUAD mode= fixes for Designware SPI config: riscv-randconfig-r042-20211209 (https://download.01.org/0day-ci/arc= hive/20211210/202112100716.eAbKARVp-lkp(a)intel.com/config) compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 097a1c= b1d5ebb3a0ec4bcaed8ba3ff6a8e33c00a) reproduce (this is a W=3D1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/= make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # install riscv cross compiling tool for clang build # apt-get install binutils-riscv64-linux-gnu # https://github.com/intel/linux-intel-lts/commit/de6f8390867e1796a= a6ad8d0603a8c7676e54fac git remote add intel-lts https://github.com/intel/linux-intel-lts.g= it git fetch --no-tags intel-lts 5.10/KMB-yocto git checkout de6f8390867e1796aa6ad8d0603a8c7676e54fac # save the config file to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=3D$HOME/0day COMPILER=3Dclang make.cross W=3D= 1 O=3Dbuild_dir ARCH=3Driscv SHELL=3D/bin/bash drivers/spi/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): In file included from drivers/spi/spi-dw-core.c:8: In file included from include/linux/dma-mapping.h:10: In file included from include/linux/scatterlist.h:9: In file included from arch/riscv/include/asm/io.h:149: include/asm-generic/io.h:556:9: warning: performing pointer arithmetic o= n a null pointer has undefined behavior [-Wnull-pointer-arithmetic] return inb(addr); ^~~~~~~~~ arch/riscv/include/asm/io.h:55:76: note: expanded from macro 'inb' #define inb(c) ({ u8 __v; __io_pbr(); __v =3D readb_cpu((void*= )(PCI_IOBASE + (c))); __io_par(__v); __v; }) = ~~~~~~~~~~ ^ arch/riscv/include/asm/mmio.h:87:48: note: expanded from macro 'readb_cp= u' #define readb_cpu(c) ({ u8 __r =3D __raw_readb(c); __r; }) ^ In file included from drivers/spi/spi-dw-core.c:8: In file included from include/linux/dma-mapping.h:10: In file included from include/linux/scatterlist.h:9: In file included from arch/riscv/include/asm/io.h:149: include/asm-generic/io.h:564:9: warning: performing pointer arithmetic o= n a null pointer has undefined behavior [-Wnull-pointer-arithmetic] return inw(addr); ^~~~~~~~~ arch/riscv/include/asm/io.h:56:76: note: expanded from macro 'inw' #define inw(c) ({ u16 __v; __io_pbr(); __v =3D readw_cpu((void*= )(PCI_IOBASE + (c))); __io_par(__v); __v; }) = ~~~~~~~~~~ ^ arch/riscv/include/asm/mmio.h:88:76: note: expanded from macro 'readw_cp= u' #define readw_cpu(c) ({ u16 __r =3D le16_to_cpu((__force __le= 16)__raw_readw(c)); __r; }) = ^ include/uapi/linux/byteorder/little_endian.h:36:51: note: expanded from = macro '__le16_to_cpu' #define __le16_to_cpu(x) ((__force __u16)(__le16)(x)) ^ In file included from drivers/spi/spi-dw-core.c:8: In file included from include/linux/dma-mapping.h:10: In file included from include/linux/scatterlist.h:9: In file included from arch/riscv/include/asm/io.h:149: include/asm-generic/io.h:572:9: warning: performing pointer arithmetic o= n a null pointer has undefined behavior [-Wnull-pointer-arithmetic] return inl(addr); ^~~~~~~~~ arch/riscv/include/asm/io.h:57:76: note: expanded from macro 'inl' #define inl(c) ({ u32 __v; __io_pbr(); __v =3D readl_cpu((void*= )(PCI_IOBASE + (c))); __io_par(__v); __v; }) = ~~~~~~~~~~ ^ arch/riscv/include/asm/mmio.h:89:76: note: expanded from macro 'readl_cp= u' #define readl_cpu(c) ({ u32 __r =3D le32_to_cpu((__force __le= 32)__raw_readl(c)); __r; }) = ^ include/uapi/linux/byteorder/little_endian.h:34:51: note: expanded from = macro '__le32_to_cpu' #define __le32_to_cpu(x) ((__force __u32)(__le32)(x)) ^ In file included from drivers/spi/spi-dw-core.c:8: In file included from include/linux/dma-mapping.h:10: In file included from include/linux/scatterlist.h:9: In file included from arch/riscv/include/asm/io.h:149: include/asm-generic/io.h:580:2: warning: performing pointer arithmetic o= n a null pointer has undefined behavior [-Wnull-pointer-arithmetic] outb(value, addr); ^~~~~~~~~~~~~~~~~ arch/riscv/include/asm/io.h:59:68: note: expanded from macro 'outb' #define outb(v,c) ({ __io_pbw(); writeb_cpu((v),(void*)(PCI_IOBASE= + (c))); __io_paw(); }) ~~~~~~~~~~= ^ arch/riscv/include/asm/mmio.h:91:52: note: expanded from macro 'writeb_c= pu' #define writeb_cpu(v, c) ((void)__raw_writeb((v), (c))) ^ In file included from drivers/spi/spi-dw-core.c:8: In file included from include/linux/dma-mapping.h:10: In file included from include/linux/scatterlist.h:9: In file included from arch/riscv/include/asm/io.h:149: include/asm-generic/io.h:588:2: warning: performing pointer arithmetic o= n a null pointer has undefined behavior [-Wnull-pointer-arithmetic] outw(value, addr); ^~~~~~~~~~~~~~~~~ arch/riscv/include/asm/io.h:60:68: note: expanded from macro 'outw' #define outw(v,c) ({ __io_pbw(); writew_cpu((v),(void*)(PCI_IOBASE= + (c))); __io_paw(); }) ~~~~~~~~~~= ^ arch/riscv/include/asm/mmio.h:92:76: note: expanded from macro 'writew_c= pu' #define writew_cpu(v, c) ((void)__raw_writew((__force u16)cpu_to_= le16(v), (c))) = ^ In file included from drivers/spi/spi-dw-core.c:8: In file included from include/linux/dma-mapping.h:10: In file included from include/linux/scatterlist.h:9: In file included from arch/riscv/include/asm/io.h:149: include/asm-generic/io.h:596:2: warning: performing pointer arithmetic o= n a null pointer has undefined behavior [-Wnull-pointer-arithmetic] outl(value, addr); ^~~~~~~~~~~~~~~~~ arch/riscv/include/asm/io.h:61:68: note: expanded from macro 'outl' #define outl(v,c) ({ __io_pbw(); writel_cpu((v),(void*)(PCI_IOBASE= + (c))); __io_paw(); }) ~~~~~~~~~~= ^ arch/riscv/include/asm/mmio.h:93:76: note: expanded from macro 'writel_c= pu' #define writel_cpu(v, c) ((void)__raw_writel((__force u32)cpu_to_= le32(v), (c))) = ^ In file included from drivers/spi/spi-dw-core.c:8: In file included from include/linux/dma-mapping.h:10: In file included from include/linux/scatterlist.h:9: In file included from arch/riscv/include/asm/io.h:149: include/asm-generic/io.h:1005:55: warning: performing pointer arithmetic= on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] return (port > MMIO_UPPER_LIMIT) ? NULL : PCI_IOBASE + port; ~~~~~~~~~~ ^ >> drivers/spi/spi-dw-core.c:507:2: error: implicit declaration of function= 'dw_spi_dual_quad_config' [-Werror,-Wimplicit-function-declaration] dw_spi_dual_quad_config(dws, spi, &cfg, transfer); ^ 7 warnings and 1 error generated. vim +/dw_spi_dual_quad_config +507 drivers/spi/spi-dw-core.c 478 = 479 static int dw_spi_transfer_one(struct spi_controller *master, 480 struct spi_device *spi, struct spi_transfer *transfer) 481 { 482 struct dw_spi *dws =3D spi_controller_get_devdata(master); 483 struct dw_spi_cfg cfg =3D { 484 .tmode =3D SPI_TMOD_TR, 485 .dfs =3D transfer->bits_per_word, 486 .freq =3D transfer->speed_hz, 487 }; 488 int ret; 489 = 490 dws->dma_mapped =3D 0; 491 dws->n_bytes =3D DIV_ROUND_UP(transfer->bits_per_word, BITS_PER_BYT= E); 492 dws->tx =3D (void *)transfer->tx_buf; 493 dws->rx =3D transfer->rx_buf; 494 dws->tx_len =3D transfer->len / dws->n_bytes; 495 if (dws->rx) 496 dws->rx_len =3D dws->tx_len; 497 else { 498 cfg.tmode =3D SPI_TMOD_TO; 499 dws->rx_len =3D 0; 500 } 501 = 502 /* Ensure the data above is visible for all CPUs */ 503 smp_mb(); 504 = 505 spi_enable_chip(dws, 0); 506 = > 507 dw_spi_dual_quad_config(dws, spi, &cfg, transfer); 508 = 509 dw_spi_update_config(dws, spi, &cfg); 510 = 511 transfer->effective_speed_hz =3D dws->current_freq; 512 = 513 /* Check if current transfer is a DMA transaction */ 514 if (master->can_dma && master->can_dma(master, spi, transfer)) 515 dws->dma_mapped =3D master->cur_msg_mapped; 516 = 517 /* For poll mode just disable all interrupts */ 518 spi_mask_intr(dws, 0xff); 519 = 520 if (dws->dma_mapped) { 521 ret =3D dws->dma_ops->dma_setup(dws, transfer); 522 if (ret) 523 return ret; 524 } 525 = 526 spi_enable_chip(dws, 1); 527 = 528 if (dws->dma_mapped) 529 return dws->dma_ops->dma_transfer(dws, transfer); 530 else if (dws->irq =3D=3D IRQ_NOTCONNECTED) 531 return dw_spi_poll_transfer(dws, transfer); 532 = 533 dw_spi_irq_setup(dws); 534 = 535 return 1; 536 } 537 = --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org --===============0978120929480360029==--