On Fri, 8 Mar 2024 18:55:09 +0000 Ben Dooks <ben.dooks@xxxxxxxxxxxxxxx> wrote: > On 08/03/2024 18:14, Ben Dooks wrote: > > If the ad5755 is not being built as a module, then we get an unused warning > > about the ad5755_of_match[] array as this is only used by the macro > > MODULE_DEVICE_TABLE. Fix this by adding an #ifdef MODULE around it to > > silence: > > > > drivers/iio/dac/ad5755.c:866:34: warning: ‘ad5755_of_match’ defined but not used [-Wunused-const-variable=] > > 866 | static const struct of_device_id ad5755_of_match[] = { > > > > Signed-off-by: Ben Dooks <ben.dooks@xxxxxxxxxxxxxxx> > > --- > > drivers/iio/dac/ad5755.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/drivers/iio/dac/ad5755.c b/drivers/iio/dac/ad5755.c > > index 404865e35460..fb99c8472788 100644 > > --- a/drivers/iio/dac/ad5755.c > > +++ b/drivers/iio/dac/ad5755.c > > @@ -863,6 +863,7 @@ static const struct spi_device_id ad5755_id[] = { > > }; > > MODULE_DEVICE_TABLE(spi, ad5755_id); > > > > +#ifndef MODULE > > Just noticed the use of ifnded instead of ifdef here. Will fix Monday. Krzystof posted a different fix for this a while back but that had some issues. https://lore.kernel.org/linux-iio/20240226192555.14aa178e@jic23-huawei/ The simple fix is just hook up the of_device_match pointer. But to use the general data matching from spi_get_device_match_data() the data needs to change to be pointers and not enums hammered into a pointer. I'm really not keen on the horrible workaround of avoiding the enum value of 0. So this needs a more complex fix in general - for now we can get away with using the table and the fallback stuff that relies on the of_device_id and spi_device_id table entries matching but that is fragile. > > > static const struct of_device_id ad5755_of_match[] = { > > { .compatible = "adi,ad5755" }, > > { .compatible = "adi,ad5755-1" }, > > @@ -872,6 +873,7 @@ static const struct of_device_id ad5755_of_match[] = { > > { } > > }; > > MODULE_DEVICE_TABLE(of, ad5755_of_match); > > +#endif > > > > static struct spi_driver ad5755_driver = { > > .driver = { >