Hi Srinivasa, Thank you for the patch! Yet something to improve: [auto build test ERROR on asoc/for-next] [also build test ERROR on next-20200917] [cannot apply to v5.9-rc5] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Srinivasa-Rao-Mandadapu/Qualcomm-s-lpass-hdmi-ASoC-driver-to-support-audio-over-dp-port/20200917-214328 base: https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next config: riscv-randconfig-r031-20200917 (attached as .config) compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 1321160a26e7e489baf9b10d6de90a342f898960) 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 riscv cross compiling tool for clang build # apt-get install binutils-riscv64-linux-gnu # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv 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 arch/riscv/include/asm/io.h:148: include/asm-generic/io.h:564:9: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] return inw(addr); ^~~~~~~~~ arch/riscv/include/asm/io.h:55:76: note: expanded from macro 'inw' #define inw(c) ({ u16 __v; __io_pbr(); __v = readw_cpu((void*)(PCI_IOBASE + (c))); __io_par(__v); __v; }) ~~~~~~~~~~ ^ arch/riscv/include/asm/mmio.h:88:76: note: expanded from macro 'readw_cpu' #define readw_cpu(c) ({ u16 __r = le16_to_cpu((__force __le16)__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 sound/soc/qcom/lpass-ipq806x.c:17: In file included from include/sound/soc.h:18: In file included from include/linux/interrupt.h:11: In file included from include/linux/hardirq.h:10: In file included from ./arch/riscv/include/generated/asm/hardirq.h:1: In file included from include/asm-generic/hardirq.h:13: In file included from include/linux/irq.h:20: In file included from include/linux/io.h:13: In file included from arch/riscv/include/asm/io.h:148: include/asm-generic/io.h:572:9: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] return inl(addr); ^~~~~~~~~ arch/riscv/include/asm/io.h:56:76: note: expanded from macro 'inl' #define inl(c) ({ u32 __v; __io_pbr(); __v = readl_cpu((void*)(PCI_IOBASE + (c))); __io_par(__v); __v; }) ~~~~~~~~~~ ^ arch/riscv/include/asm/mmio.h:89:76: note: expanded from macro 'readl_cpu' #define readl_cpu(c) ({ u32 __r = le32_to_cpu((__force __le32)__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 sound/soc/qcom/lpass-ipq806x.c:17: In file included from include/sound/soc.h:18: In file included from include/linux/interrupt.h:11: In file included from include/linux/hardirq.h:10: In file included from ./arch/riscv/include/generated/asm/hardirq.h:1: In file included from include/asm-generic/hardirq.h:13: In file included from include/linux/irq.h:20: In file included from include/linux/io.h:13: In file included from arch/riscv/include/asm/io.h:148: include/asm-generic/io.h:580:2: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] outb(value, addr); ^~~~~~~~~~~~~~~~~ arch/riscv/include/asm/io.h:58: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_cpu' #define writeb_cpu(v, c) ((void)__raw_writeb((v), (c))) ^ In file included from sound/soc/qcom/lpass-ipq806x.c:17: In file included from include/sound/soc.h:18: In file included from include/linux/interrupt.h:11: In file included from include/linux/hardirq.h:10: In file included from ./arch/riscv/include/generated/asm/hardirq.h:1: In file included from include/asm-generic/hardirq.h:13: In file included from include/linux/irq.h:20: In file included from include/linux/io.h:13: In file included from arch/riscv/include/asm/io.h:148: include/asm-generic/io.h:588:2: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] outw(value, addr); ^~~~~~~~~~~~~~~~~ arch/riscv/include/asm/io.h:59: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_cpu' #define writew_cpu(v, c) ((void)__raw_writew((__force u16)cpu_to_le16(v), (c))) ^ In file included from sound/soc/qcom/lpass-ipq806x.c:17: In file included from include/sound/soc.h:18: In file included from include/linux/interrupt.h:11: In file included from include/linux/hardirq.h:10: In file included from ./arch/riscv/include/generated/asm/hardirq.h:1: In file included from include/asm-generic/hardirq.h:13: In file included from include/linux/irq.h:20: In file included from include/linux/io.h:13: In file included from arch/riscv/include/asm/io.h:148: include/asm-generic/io.h:596:2: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] outl(value, addr); ^~~~~~~~~~~~~~~~~ arch/riscv/include/asm/io.h:60: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_cpu' #define writel_cpu(v, c) ((void)__raw_writel((__force u32)cpu_to_le32(v), (c))) ^ In file included from sound/soc/qcom/lpass-ipq806x.c:17: In file included from include/sound/soc.h:18: In file included from include/linux/interrupt.h:11: In file included from include/linux/hardirq.h:10: In file included from ./arch/riscv/include/generated/asm/hardirq.h:1: In file included from include/asm-generic/hardirq.h:13: In file included from include/linux/irq.h:20: In file included from include/linux/io.h:13: In file included from arch/riscv/include/asm/io.h:148: include/asm-generic/io.h:1017:55: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] return (port > MMIO_UPPER_LIMIT) ? NULL : PCI_IOBASE + port; ~~~~~~~~~~ ^ >> sound/soc/qcom/lpass-ipq806x.c:160:23: error: incompatible function pointer types initializing 'int (*)(struct lpass_data *, int, unsigned int)' with an expression of type 'int (struct lpass_data *, int)' [-Werror,-Wincompatible-function-pointer-types] .alloc_dma_channel = ipq806x_lpass_alloc_dma_channel, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sound/soc/qcom/lpass-ipq806x.c:161:22: error: incompatible function pointer types initializing 'int (*)(struct lpass_data *, int, unsigned int)' with an expression of type 'int (struct lpass_data *, int)' [-Werror,-Wincompatible-function-pointer-types] .free_dma_channel = ipq806x_lpass_free_dma_channel, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 7 warnings and 2 errors generated. -- In file included from arch/riscv/include/asm/io.h:148: include/asm-generic/io.h:564:9: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] return inw(addr); ^~~~~~~~~ arch/riscv/include/asm/io.h:55:76: note: expanded from macro 'inw' #define inw(c) ({ u16 __v; __io_pbr(); __v = readw_cpu((void*)(PCI_IOBASE + (c))); __io_par(__v); __v; }) ~~~~~~~~~~ ^ arch/riscv/include/asm/mmio.h:88:76: note: expanded from macro 'readw_cpu' #define readw_cpu(c) ({ u16 __r = le16_to_cpu((__force __le16)__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 sound/soc/qcom/lpass-apq8016.c:18: In file included from include/sound/soc.h:18: In file included from include/linux/interrupt.h:11: In file included from include/linux/hardirq.h:10: In file included from ./arch/riscv/include/generated/asm/hardirq.h:1: In file included from include/asm-generic/hardirq.h:13: In file included from include/linux/irq.h:20: In file included from include/linux/io.h:13: In file included from arch/riscv/include/asm/io.h:148: include/asm-generic/io.h:572:9: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] return inl(addr); ^~~~~~~~~ arch/riscv/include/asm/io.h:56:76: note: expanded from macro 'inl' #define inl(c) ({ u32 __v; __io_pbr(); __v = readl_cpu((void*)(PCI_IOBASE + (c))); __io_par(__v); __v; }) ~~~~~~~~~~ ^ arch/riscv/include/asm/mmio.h:89:76: note: expanded from macro 'readl_cpu' #define readl_cpu(c) ({ u32 __r = le32_to_cpu((__force __le32)__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 sound/soc/qcom/lpass-apq8016.c:18: In file included from include/sound/soc.h:18: In file included from include/linux/interrupt.h:11: In file included from include/linux/hardirq.h:10: In file included from ./arch/riscv/include/generated/asm/hardirq.h:1: In file included from include/asm-generic/hardirq.h:13: In file included from include/linux/irq.h:20: In file included from include/linux/io.h:13: In file included from arch/riscv/include/asm/io.h:148: include/asm-generic/io.h:580:2: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] outb(value, addr); ^~~~~~~~~~~~~~~~~ arch/riscv/include/asm/io.h:58: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_cpu' #define writeb_cpu(v, c) ((void)__raw_writeb((v), (c))) ^ In file included from sound/soc/qcom/lpass-apq8016.c:18: In file included from include/sound/soc.h:18: In file included from include/linux/interrupt.h:11: In file included from include/linux/hardirq.h:10: In file included from ./arch/riscv/include/generated/asm/hardirq.h:1: In file included from include/asm-generic/hardirq.h:13: In file included from include/linux/irq.h:20: In file included from include/linux/io.h:13: In file included from arch/riscv/include/asm/io.h:148: include/asm-generic/io.h:588:2: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] outw(value, addr); ^~~~~~~~~~~~~~~~~ arch/riscv/include/asm/io.h:59: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_cpu' #define writew_cpu(v, c) ((void)__raw_writew((__force u16)cpu_to_le16(v), (c))) ^ In file included from sound/soc/qcom/lpass-apq8016.c:18: In file included from include/sound/soc.h:18: In file included from include/linux/interrupt.h:11: In file included from include/linux/hardirq.h:10: In file included from ./arch/riscv/include/generated/asm/hardirq.h:1: In file included from include/asm-generic/hardirq.h:13: In file included from include/linux/irq.h:20: In file included from include/linux/io.h:13: In file included from arch/riscv/include/asm/io.h:148: include/asm-generic/io.h:596:2: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] outl(value, addr); ^~~~~~~~~~~~~~~~~ arch/riscv/include/asm/io.h:60: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_cpu' #define writel_cpu(v, c) ((void)__raw_writel((__force u32)cpu_to_le32(v), (c))) ^ In file included from sound/soc/qcom/lpass-apq8016.c:18: In file included from include/sound/soc.h:18: In file included from include/linux/interrupt.h:11: In file included from include/linux/hardirq.h:10: In file included from ./arch/riscv/include/generated/asm/hardirq.h:1: In file included from include/asm-generic/hardirq.h:13: In file included from include/linux/irq.h:20: In file included from include/linux/io.h:13: In file included from arch/riscv/include/asm/io.h:148: include/asm-generic/io.h:1017:55: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] return (port > MMIO_UPPER_LIMIT) ? NULL : PCI_IOBASE + port; ~~~~~~~~~~ ^ >> sound/soc/qcom/lpass-apq8016.c:290:23: error: incompatible function pointer types initializing 'int (*)(struct lpass_data *, int, unsigned int)' with an expression of type 'int (struct lpass_data *, int)' [-Werror,-Wincompatible-function-pointer-types] .alloc_dma_channel = apq8016_lpass_alloc_dma_channel, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sound/soc/qcom/lpass-apq8016.c:291:22: error: incompatible function pointer types initializing 'int (*)(struct lpass_data *, int, unsigned int)' with an expression of type 'int (struct lpass_data *, int)' [-Werror,-Wincompatible-function-pointer-types] .free_dma_channel = apq8016_lpass_free_dma_channel, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 7 warnings and 2 errors generated. # https://github.com/0day-ci/linux/commit/36d10d78e631aecf445a62288278056d499bbee2 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Srinivasa-Rao-Mandadapu/Qualcomm-s-lpass-hdmi-ASoC-driver-to-support-audio-over-dp-port/20200917-214328 git checkout 36d10d78e631aecf445a62288278056d499bbee2 vim +160 sound/soc/qcom/lpass-ipq806x.c 6db1c6ba9544e99 Srinivas Kandagatla 2015-05-16 111 eccad574ef2d74e Lars-Peter Clausen 2015-07-27 112 static struct lpass_variant ipq806x_data = { 9bae4880acee1cd Srinivas Kandagatla 2015-05-16 113 .i2sctrl_reg_base = 0x0010, 9bae4880acee1cd Srinivas Kandagatla 2015-05-16 114 .i2sctrl_reg_stride = 0x04, 9bae4880acee1cd Srinivas Kandagatla 2015-05-16 115 .i2s_ports = 5, 9bae4880acee1cd Srinivas Kandagatla 2015-05-16 116 .irq_reg_base = 0x3000, 9bae4880acee1cd Srinivas Kandagatla 2015-05-16 117 .irq_reg_stride = 0x1000, 9bae4880acee1cd Srinivas Kandagatla 2015-05-16 118 .irq_ports = 3, 9bae4880acee1cd Srinivas Kandagatla 2015-05-16 119 .rdma_reg_base = 0x6000, 9bae4880acee1cd Srinivas Kandagatla 2015-05-16 120 .rdma_reg_stride = 0x1000, 9bae4880acee1cd Srinivas Kandagatla 2015-05-16 121 .rdma_channels = 4, 0a14a1bf2e81a75 Srinivas Kandagatla 2016-02-11 122 .wrdma_reg_base = 0xB000, 0a14a1bf2e81a75 Srinivas Kandagatla 2016-02-11 123 .wrdma_reg_stride = 0x1000, 0a14a1bf2e81a75 Srinivas Kandagatla 2016-02-11 124 .wrdma_channel_start = 5, 0a14a1bf2e81a75 Srinivas Kandagatla 2016-02-11 125 .wrdma_channels = 4, b5022a36d28f6a9 Rohit kumar 2020-08-14 126 .loopback = REG_FIELD_ID(0x0010, 15, 15, 5, 0x4), b5022a36d28f6a9 Rohit kumar 2020-08-14 127 .spken = REG_FIELD_ID(0x0010, 14, 14, 5, 0x4), b5022a36d28f6a9 Rohit kumar 2020-08-14 128 .spkmode = REG_FIELD_ID(0x0010, 10, 13, 5, 0x4), b5022a36d28f6a9 Rohit kumar 2020-08-14 129 .spkmono = REG_FIELD_ID(0x0010, 9, 9, 5, 0x4), b5022a36d28f6a9 Rohit kumar 2020-08-14 130 .micen = REG_FIELD_ID(0x0010, 8, 8, 5, 0x4), b5022a36d28f6a9 Rohit kumar 2020-08-14 131 .micmode = REG_FIELD_ID(0x0010, 4, 7, 5, 0x4), b5022a36d28f6a9 Rohit kumar 2020-08-14 132 .micmono = REG_FIELD_ID(0x0010, 3, 3, 5, 0x4), b5022a36d28f6a9 Rohit kumar 2020-08-14 133 .wssrc = REG_FIELD_ID(0x0010, 2, 2, 5, 0x4), b5022a36d28f6a9 Rohit kumar 2020-08-14 134 .bitwidth = REG_FIELD_ID(0x0010, 0, 0, 5, 0x4), b5022a36d28f6a9 Rohit kumar 2020-08-14 135 b5022a36d28f6a9 Rohit kumar 2020-08-14 136 .rdma_dyncclk = REG_FIELD_ID(0x6000, 12, 12, 4, 0x1000), b5022a36d28f6a9 Rohit kumar 2020-08-14 137 .rdma_bursten = REG_FIELD_ID(0x6000, 11, 11, 4, 0x1000), b5022a36d28f6a9 Rohit kumar 2020-08-14 138 .rdma_wpscnt = REG_FIELD_ID(0x6000, 8, 10, 4, 0x1000), b5022a36d28f6a9 Rohit kumar 2020-08-14 139 .rdma_intf = REG_FIELD_ID(0x6000, 4, 7, 4, 0x1000), b5022a36d28f6a9 Rohit kumar 2020-08-14 140 .rdma_fifowm = REG_FIELD_ID(0x6000, 1, 3, 4, 0x1000), b5022a36d28f6a9 Rohit kumar 2020-08-14 141 .rdma_enable = REG_FIELD_ID(0x6000, 0, 0, 4, 0x1000), b5022a36d28f6a9 Rohit kumar 2020-08-14 142 b5022a36d28f6a9 Rohit kumar 2020-08-14 143 .wrdma_dyncclk = REG_FIELD_ID(0xB000, 12, 12, 4, 0x1000), b5022a36d28f6a9 Rohit kumar 2020-08-14 144 .wrdma_bursten = REG_FIELD_ID(0xB000, 11, 11, 4, 0x1000), b5022a36d28f6a9 Rohit kumar 2020-08-14 145 .wrdma_wpscnt = REG_FIELD_ID(0xB000, 8, 10, 4, 0x1000), b5022a36d28f6a9 Rohit kumar 2020-08-14 146 .wrdma_intf = REG_FIELD_ID(0xB000, 4, 7, 4, 0x1000), b5022a36d28f6a9 Rohit kumar 2020-08-14 147 .wrdma_fifowm = REG_FIELD_ID(0xB000, 1, 3, 4, 0x1000), b5022a36d28f6a9 Rohit kumar 2020-08-14 148 .wrdma_enable = REG_FIELD_ID(0xB000, 0, 0, 4, 0x1000), b5022a36d28f6a9 Rohit kumar 2020-08-14 149 9bae4880acee1cd Srinivas Kandagatla 2015-05-16 150 .dai_driver = &ipq806x_lpass_cpu_dai_driver, 9bae4880acee1cd Srinivas Kandagatla 2015-05-16 151 .num_dai = 1, 97c52eb969718f0 Linus Walleij 2017-04-05 152 .dai_osr_clk_names = (const char *[]) { 97c52eb969718f0 Linus Walleij 2017-04-05 153 "mi2s-osr-clk", 97c52eb969718f0 Linus Walleij 2017-04-05 154 }, 97c52eb969718f0 Linus Walleij 2017-04-05 155 .dai_bit_clk_names = (const char *[]) { 97c52eb969718f0 Linus Walleij 2017-04-05 156 "mi2s-bit-clk", 97c52eb969718f0 Linus Walleij 2017-04-05 157 }, a503567d70eca91 Rohit kumar 2020-08-14 158 .init = ipq806x_lpass_init, a503567d70eca91 Rohit kumar 2020-08-14 159 .exit = ipq806x_lpass_exit, 6db1c6ba9544e99 Srinivas Kandagatla 2015-05-16 @160 .alloc_dma_channel = ipq806x_lpass_alloc_dma_channel, 6db1c6ba9544e99 Srinivas Kandagatla 2015-05-16 161 .free_dma_channel = ipq806x_lpass_free_dma_channel, 9bae4880acee1cd Srinivas Kandagatla 2015-05-16 162 }; 9bae4880acee1cd Srinivas Kandagatla 2015-05-16 163 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org