Re: [PATCH v2 3/3] staging: iio: Initialize spi_device_id arrays using member names
From: Jonathan Cameron
Date: Tue Jun 30 2026 - 19:04:46 EST
On Tue, 30 Jun 2026 17:35:36 +0200
Uwe Kleine-König (The Capable Hub) <u.kleine-koenig@xxxxxxxxxxxx> wrote:
> While being less compact, using named initializers allows to more easily
> see which members of the structs are assigned which value without having
> to lookup the declaration of the struct. And it's also more robust
> against changes to the struct definition.
>
> The mentioned robustness is relevant for a planned change to struct
> spi_device_id that replaces .driver_data by an anonymous union.
>
> This patch doesn't modify the compiled arrays, only their representation
> in source form benefits. The former was confirmed with x86 and arm64
> builds.
>
> Signed-off-by: Uwe Kleine-König (The Capable Hub) <u.kleine-koenig@xxxxxxxxxxxx>
> Reviewed-by: Nuno Sá <nuno.sa@xxxxxxxxxx>
> Link: https://patch.msgid.link/cac7a68e6a6adb1b58207640ab045e59eec86f53.1781883685.git.u.kleine-koenig@xxxxxxxxxxxx
Given I messed up applying this in v1, picked up now.
Thanks for catching that miss!
Jonathan
> ---
> drivers/staging/iio/adc/ad7816.c | 6 +++---
> drivers/staging/iio/frequency/ad9834.c | 8 ++++----
> 2 files changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/staging/iio/adc/ad7816.c b/drivers/staging/iio/adc/ad7816.c
> index 0e32a2295990..30644d2d7c54 100644
> --- a/drivers/staging/iio/adc/ad7816.c
> +++ b/drivers/staging/iio/adc/ad7816.c
> @@ -426,9 +426,9 @@ static const struct of_device_id ad7816_of_match[] = {
> MODULE_DEVICE_TABLE(of, ad7816_of_match);
>
> static const struct spi_device_id ad7816_id[] = {
> - { "ad7816", ID_AD7816 },
> - { "ad7817", ID_AD7817 },
> - { "ad7818", ID_AD7818 },
> + { .name = "ad7816", .driver_data = ID_AD7816 },
> + { .name = "ad7817", .driver_data = ID_AD7817 },
> + { .name = "ad7818", .driver_data = ID_AD7818 },
> { }
> };
>
> diff --git a/drivers/staging/iio/frequency/ad9834.c b/drivers/staging/iio/frequency/ad9834.c
> index 4359b358e0e5..f95c5365cd03 100644
> --- a/drivers/staging/iio/frequency/ad9834.c
> +++ b/drivers/staging/iio/frequency/ad9834.c
> @@ -465,10 +465,10 @@ static int ad9834_probe(struct spi_device *spi)
> }
>
> static const struct spi_device_id ad9834_id[] = {
> - {"ad9833", ID_AD9833},
> - {"ad9834", ID_AD9834},
> - {"ad9837", ID_AD9837},
> - {"ad9838", ID_AD9838},
> + { .name = "ad9833", .driver_data = ID_AD9833 },
> + { .name = "ad9834", .driver_data = ID_AD9834 },
> + { .name = "ad9837", .driver_data = ID_AD9837 },
> + { .name = "ad9838", .driver_data = ID_AD9838 },
> { }
> };
> MODULE_DEVICE_TABLE(spi, ad9834_id);