Subject: Re: linux-next: build failure after merge of the iio tree

From: Jonathan Cameron <[email-masked]>
Date: Tue, 20 Jan 2026 09:47:32 +0000

On Mon, 19 Jan 2026 19:20:57 +0000
Mark Brown <[email-masked]> wrote:

> Hi all,
> 
> After merging the iio tree, today's linux-next build (x86_64
> allmodconfig) failed like this:
Hi Mark,

Seems we raced last night. I pushed the fix about 5 minutes after
you sent this :)

https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git/commit/?h=togreg&id=a1e5b99bc7c6b6a1c3c3b79a8fba1dc16ea160fa

Sasha gave a heads up that this was coming yesterday.

There are a couple more i3c related fixes but the more significant of those
issues probably doesn't turn up in next builds because the real fix
is in the i3c tree and I'm just papering over being unable to cleanly
pull that into IIO tree.

https://lore.kernel.org/all/[email-masked]/

Jonathan

> 
> /tmp/next/build/drivers/iio/adc/ad4062.c: In function 'ad4062_set_operation_mode':
> /tmp/next/build/drivers/iio/adc/ad4062.c:471:24: error: variable 'xfer_trigger' has initializer but incomplete type
>   471 |                 struct i3c_priv_xfer xfer_trigger = {
>       |                        ^~~~~~~~~~~~~
> /tmp/next/build/drivers/iio/adc/ad4062.c:472:26: error: 'struct i3c_priv_xfer' has no member named 'data'
>   472 |                         .data.out = &st->conv_addr,
>       |                          ^~~~
> /tmp/next/build/drivers/iio/adc/ad4062.c:472:37: error: excess elements in struct initializer [-Werror]
>   472 |                         .data.out = &st->conv_addr,
>       |                                     ^
> /tmp/next/build/drivers/iio/adc/ad4062.c:472:37: note: (near initialization for 'xfer_trigger')
> /tmp/next/build/drivers/iio/adc/ad4062.c:473:26: error: 'struct i3c_priv_xfer' has no member named 'len'
>   473 |                         .len = sizeof(st->conv_addr),
>       |                          ^~~
> /tmp/next/build/drivers/iio/adc/ad4062.c:473:32: error: excess elements in struct initializer [-Werror]
>   473 |                         .len = sizeof(st->conv_addr),
>       |                                ^~~~~~
> /tmp/next/build/drivers/iio/adc/ad4062.c:473:32: note: (near initialization for 'xfer_trigger')
> /tmp/next/build/drivers/iio/adc/ad4062.c:474:26: error: 'struct i3c_priv_xfer' has no member named 'rnw'
>   474 |                         .rnw = false,
>       |                          ^~~
> /tmp/next/build/drivers/iio/adc/ad4062.c:474:32: error: excess elements in struct initializer [-Werror]
>   474 |                         .rnw = false,
>       |                                ^~~~~
> /tmp/next/build/drivers/iio/adc/ad4062.c:474:32: note: (near initialization for 'xfer_trigger')
> /tmp/next/build/drivers/iio/adc/ad4062.c:471:38: error: storage size of 'xfer_trigger' isn't known
>   471 |                 struct i3c_priv_xfer xfer_trigger = {
>       |                                      ^~~~~~~~~~~~
> /tmp/next/build/drivers/iio/adc/ad4062.c:477:24: error: implicit declaration of function 'i3c_device_do_priv_xfers'; did you mean 'i3c_device_do_xfers'? [-Wimplicit-function-declaration]
>   477 |                 return i3c_device_do_priv_xfers(st->i3cdev, &xfer_trigger, 1);
>       |                        ^~~~~~~~~~~~~~~~~~~~~~~~
>       |                        i3c_device_do_xfers
> /tmp/next/build/drivers/iio/adc/ad4062.c:471:38: error: unused variable 'xfer_trigger' [-Werror=unused-variable]
>   471 |                 struct i3c_priv_xfer xfer_trigger = {
>       |                                      ^~~~~~~~~~~~
> /tmp/next/build/drivers/iio/adc/ad4062.c: In function 'ad4062_trigger_work':
> /tmp/next/build/drivers/iio/adc/ad4062.c:610:16: error: variable 'xfer_sample' has initializer but incomplete type
>   610 |         struct i3c_priv_xfer xfer_sample = {
>       |                ^~~~~~~~~~~~~
> /tmp/next/build/drivers/iio/adc/ad4062.c:611:18: error: 'struct i3c_priv_xfer' has no member named 'data'
>   611 |                 .data.in = &st->buf.be32,
>       |                  ^~~~
> /tmp/next/build/drivers/iio/adc/ad4062.c:611:28: error: excess elements in struct initializer [-Werror]
>   611 |                 .data.in = &st->buf.be32,
>       |                            ^
> /tmp/next/build/drivers/iio/adc/ad4062.c:611:28: note: (near initialization for 'xfer_sample')
> /tmp/next/build/drivers/iio/adc/ad4062.c:612:18: error: 'struct i3c_priv_xfer' has no member named 'len'
>   612 |                 .len = st->conv_sizeof,
>       |                  ^~~
> /tmp/next/build/drivers/iio/adc/ad4062.c:612:24: error: excess elements in struct initializer [-Werror]
>   612 |                 .len = st->conv_sizeof,
>       |                        ^~
> /tmp/next/build/drivers/iio/adc/ad4062.c:612:24: note: (near initialization for 'xfer_sample')
> /tmp/next/build/drivers/iio/adc/ad4062.c:613:18: error: 'struct i3c_priv_xfer' has no member named 'rnw'
>   613 |                 .rnw = true,
>       |                  ^~~
> /tmp/next/build/drivers/iio/adc/ad4062.c:613:24: error: excess elements in struct initializer [-Werror]
>   613 |                 .rnw = true,
>       |                        ^~~~
> /tmp/next/build/drivers/iio/adc/ad4062.c:613:24: note: (near initialization for 'xfer_sample')
> /tmp/next/build/drivers/iio/adc/ad4062.c:610:30: error: storage size of 'xfer_sample' isn't known
>   610 |         struct i3c_priv_xfer xfer_sample = {
>       |                              ^~~~~~~~~~~
> /tmp/next/build/drivers/iio/adc/ad4062.c:615:16: error: variable 'xfer_trigger' has initializer but incomplete type
>   615 |         struct i3c_priv_xfer xfer_trigger = {
>       |                ^~~~~~~~~~~~~
> /tmp/next/build/drivers/iio/adc/ad4062.c:616:18: error: 'struct i3c_priv_xfer' has no member named 'data'
>   616 |                 .data.out = &st->conv_addr,
>       |                  ^~~~
> /tmp/next/build/drivers/iio/adc/ad4062.c:616:29: error: excess elements in struct initializer [-Werror]
>   616 |                 .data.out = &st->conv_addr,
>       |                             ^
> /tmp/next/build/drivers/iio/adc/ad4062.c:616:29: note: (near initialization for 'xfer_trigger')
> /tmp/next/build/drivers/iio/adc/ad4062.c:617:18: error: 'struct i3c_priv_xfer' has no member named 'len'
>   617 |                 .len = sizeof(st->conv_addr),
>       |                  ^~~
> /tmp/next/build/drivers/iio/adc/ad4062.c:617:24: error: excess elements in struct initializer [-Werror]
>   617 |                 .len = sizeof(st->conv_addr),
>       |                        ^~~~~~
> /tmp/next/build/drivers/iio/adc/ad4062.c:617:24: note: (near initialization for 'xfer_trigger')
> /tmp/next/build/drivers/iio/adc/ad4062.c:618:18: error: 'struct i3c_priv_xfer' has no member named 'rnw'
>   618 |                 .rnw = false,
>       |                  ^~~
> /tmp/next/build/drivers/iio/adc/ad4062.c:618:24: error: excess elements in struct initializer [-Werror]
>   618 |                 .rnw = false,
>       |                        ^~~~~
> /tmp/next/build/drivers/iio/adc/ad4062.c:618:24: note: (near initialization for 'xfer_trigger')
> /tmp/next/build/drivers/iio/adc/ad4062.c:615:30: error: storage size of 'xfer_trigger' isn't known
>   615 |         struct i3c_priv_xfer xfer_trigger = {
>       |                              ^~~~~~~~~~~~
> /tmp/next/build/drivers/iio/adc/ad4062.c:615:30: error: unused variable 'xfer_trigger' [-Werror=unused-variable]
> /tmp/next/build/drivers/iio/adc/ad4062.c:610:30: error: unused variable 'xfer_sample' [-Werror=unused-variable]
>   610 |         struct i3c_priv_xfer xfer_sample = {
>       |                              ^~~~~~~~~~~
> /tmp/next/build/drivers/iio/adc/ad4062.c: In function 'ad4062_read_chan_raw':
> /tmp/next/build/drivers/iio/adc/ad4062.c:855:16: error: variable 'xfer_trigger' has initializer but incomplete type
>   855 |         struct i3c_priv_xfer xfer_trigger = {
>       |                ^~~~~~~~~~~~~
> /tmp/next/build/drivers/iio/adc/ad4062.c:856:18: error: 'struct i3c_priv_xfer' has no member named 'data'
>   856 |                 .data.out = &st->conv_addr,
>       |                  ^~~~
> /tmp/next/build/drivers/iio/adc/ad4062.c:856:29: error: excess elements in struct initializer [-Werror]
>   856 |                 .data.out = &st->conv_addr,
>       |                             ^
> /tmp/next/build/drivers/iio/adc/ad4062.c:856:29: note: (near initialization for 'xfer_trigger')
> /tmp/next/build/drivers/iio/adc/ad4062.c:857:18: error: 'struct i3c_priv_xfer' has no member named 'len'
>   857 |                 .len = sizeof(st->conv_addr),
>       |                  ^~~
> /tmp/next/build/drivers/iio/adc/ad4062.c:857:24: error: excess elements in struct initializer [-Werror]
>   857 |                 .len = sizeof(st->conv_addr),
>       |                        ^~~~~~
> /tmp/next/build/drivers/iio/adc/ad4062.c:857:24: note: (near initialization for 'xfer_trigger')
> /tmp/next/build/drivers/iio/adc/ad4062.c:858:18: error: 'struct i3c_priv_xfer' has no member named 'rnw'
>   858 |                 .rnw = false,
>       |                  ^~~
> /tmp/next/build/drivers/iio/adc/ad4062.c:858:24: error: excess elements in struct initializer [-Werror]
>   858 |                 .rnw = false,
>       |                        ^~~~~
> /tmp/next/build/drivers/iio/adc/ad4062.c:858:24: note: (near initialization for 'xfer_trigger')
> /tmp/next/build/drivers/iio/adc/ad4062.c:855:30: error: storage size of 'xfer_trigger' isn't known
>   855 |         struct i3c_priv_xfer xfer_trigger = {
>       |                              ^~~~~~~~~~~~
> /tmp/next/build/drivers/iio/adc/ad4062.c:860:16: error: variable 'xfer_sample' has initializer but incomplete type
>   860 |         struct i3c_priv_xfer xfer_sample = {
>       |                ^~~~~~~~~~~~~
> /tmp/next/build/drivers/iio/adc/ad4062.c:861:18: error: 'struct i3c_priv_xfer' has no member named 'data'
>   861 |                 .data.in = &st->buf.be32,
>       |                  ^~~~
> /tmp/next/build/drivers/iio/adc/ad4062.c:861:28: error: excess elements in struct initializer [-Werror]
>   861 |                 .data.in = &st->buf.be32,
>       |                            ^
> /tmp/next/build/drivers/iio/adc/ad4062.c:861:28: note: (near initialization for 'xfer_sample')
> /tmp/next/build/drivers/iio/adc/ad4062.c:862:18: error: 'struct i3c_priv_xfer' has no member named 'len'
>   862 |                 .len = sizeof(st->buf.be32),
>       |                  ^~~
> /tmp/next/build/drivers/iio/adc/ad4062.c:862:24: error: excess elements in struct initializer [-Werror]
>   862 |                 .len = sizeof(st->buf.be32),
>       |                        ^~~~~~
> /tmp/next/build/drivers/iio/adc/ad4062.c:862:24: note: (near initialization for 'xfer_sample')
> /tmp/next/build/drivers/iio/adc/ad4062.c:863:18: error: 'struct i3c_priv_xfer' has no member named 'rnw'
>   863 |                 .rnw = true,
>       |                  ^~~
> /tmp/next/build/drivers/iio/adc/ad4062.c:863:24: error: excess elements in struct initializer [-Werror]
>   863 |                 .rnw = true,
>       |                        ^~~~
> /tmp/next/build/drivers/iio/adc/ad4062.c:863:24: note: (near initialization for 'xfer_sample')
> /tmp/next/build/drivers/iio/adc/ad4062.c:860:30: error: storage size of 'xfer_sample' isn't known
>   860 |         struct i3c_priv_xfer xfer_sample = {
>       |                              ^~~~~~~~~~~
> /tmp/next/build/drivers/iio/adc/ad4062.c:860:30: error: unused variable 'xfer_sample' [-Werror=unused-variable]
> /tmp/next/build/drivers/iio/adc/ad4062.c:855:30: error: unused variable 'xfer_trigger' [-Werror=unused-variable]
>   855 |         struct i3c_priv_xfer xfer_trigger = {
>       |                              ^~~~~~~~~~~~
> /tmp/next/build/drivers/iio/adc/ad4062.c: In function 'pm_ad4062_triggered_buffer_postenable':
> /tmp/next/build/drivers/iio/adc/ad4062.c:1239:30: error: array type has incomplete element type 'struct i3c_priv_xfer'
>  1239 |         struct i3c_priv_xfer xfer_sample[2] = {
>       |                              ^~~~~~~~~~~
> /tmp/next/build/drivers/iio/adc/ad4062.c:1239:30: error: unused variable 'xfer_sample' [-Werror=unused-variable]
> /tmp/next/build/drivers/iio/adc/ad4062.c:1254:1: error: control reaches end of non-void function [-Werror=return-type]
>  1254 | }
>       | ^
> 
> Caused by commit
> 
>     d5284402d28f3 (iio: adc: Add support for ad4062)
> 
> I have used the version from 20260116 instead.
>