[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20220830140228.000013ca@huawei.com>
Date: Tue, 30 Aug 2022 14:02:28 +0100
From: Jonathan Cameron <Jonathan.Cameron@...wei.com>
To: Oleksij Rempel <o.rempel@...gutronix.de>
CC: Jonathan Cameron <jic23@...nel.org>,
Lars-Peter Clausen <lars@...afoo.de>,
Rob Herring <robh+dt@...nel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@...aro.org>,
<kernel@...gutronix.de>, <linux-kernel@...r.kernel.org>,
<linux-iio@...r.kernel.org>, <devicetree@...r.kernel.org>
Subject: Re: [PATCH v1 3/3] iio: adc: tsc2046: silent spi_device_id warning
On Tue, 30 Aug 2022 13:07:09 +0200
Oleksij Rempel <o.rempel@...gutronix.de> 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@...gutronix.de>
> ---
> 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,
> };
Powered by blists - more mailing lists