On Tue, 30 Aug 2022 13:07:09 +0200 Oleksij Rempel <o.rempel@xxxxxxxxxxxxxx> wrote: > Add spi_device_id to silent following warning: > SPI driver tsc2046 has no spi_device_id for ti,tsc2046e-adc > > Signed-off-by: Oleksij Rempel <o.rempel@xxxxxxxxxxxxxx> > --- > drivers/iio/adc/ti-tsc2046.c | 17 ++++++++++++++++- > 1 file changed, 16 insertions(+), 1 deletion(-) > > diff --git a/drivers/iio/adc/ti-tsc2046.c b/drivers/iio/adc/ti-tsc2046.c > index bbc8b4137b0b1..b9a1fac659d46 100644 > --- a/drivers/iio/adc/ti-tsc2046.c > +++ b/drivers/iio/adc/ti-tsc2046.c > @@ -761,7 +761,15 @@ static int tsc2046_adc_probe(struct spi_device *spi) > return -EINVAL; > } > > - dcfg = device_get_match_data(dev); > + if (!dev_fwnode(dev)) { > + const struct spi_device_id *id; > + > + id = spi_get_device_id(spi); > + dcfg = (const struct tsc2046_adc_dcfg *)id->driver_data; Driver data not set below. Otherwise this looks good to me. An alternative more common form (I think...) is call device_get_match_data() unconditionally and if that is null follow the driver_data path. Either way is fine though. Could you add to the patch description where the warning is coming from? Build time / runtime etc and what tool? Thanks, Jonathan > + } else { > + dcfg = device_get_match_data(dev); > + } > + > if (!dcfg) > return -EINVAL; > > @@ -878,11 +886,18 @@ static const struct of_device_id ads7950_of_table[] = { > }; > MODULE_DEVICE_TABLE(of, ads7950_of_table); > > +static const struct spi_device_id tsc2046_adc_spi_ids[] = { > + { "tsc2046e-adc" }, > + { } > +}; > +MODULE_DEVICE_TABLE(spi, tsc2046_adc_spi_ids); > + > static struct spi_driver tsc2046_adc_driver = { > .driver = { > .name = "tsc2046", > .of_match_table = ads7950_of_table, > }, > + .id_table = tsc2046_adc_spi_ids, > .probe = tsc2046_adc_probe, > .remove = tsc2046_adc_remove, > };