Re: [PATCH v2] iio: temperature: ltc2983: pass leak detector type explicitly
From: Jonathan Cameron
Date: Sun Oct 18 2026 - 19:53:18 EST
On Mon, 12 Oct 2026 12:00:18 +0100
nuno.sa@xxxxxxxxxx wrote:
> On Fri, Oct 02, 2026 at 11:44:50AM -0500, Carlos Casadiego via B4 Relay wrote:
> > From: Carlos Casadiego <cdcp206@xxxxxxxxx>
> >
> > __ltc2983_custom_sensor_new() uses propname both to select the firmware
> > property to read and to determine whether the custom sensor is a leak
> > detector.
> >
> > Pass this information explicitly from the caller instead of deriving
> > the sensor type from the firmware property name. This keeps propname
> > limited to identifying the property and preserves the existing
> > conversion behavior.
> >
> > As a side effect, this also avoids the -Wstring-compare warning reported
> > by the kernel test robot for callers where GCC can determine that the
> > property name cannot match "adi,custom-leak-detector".
> >
> > Fixes: 3dd0c048409e ("iio: temperature: ltc2983: Add support for ADT7604")
> > Reported-by: kernel test robot <lkp@xxxxxxxxx>
> > Closes: https://lore.kernel.org/oe-kbuild-all/202609120045.OxEsKLIn-lkp@xxxxxxxxx/
> > Signed-off-by: Carlos Casadiego <cdcp206@xxxxxxxxx>
> > ---
>
> Looks to me this is the one to apply. So:
>
> Reviewed-by: Nuno Sá <nuno.sa@xxxxxxxxxx>
Applied. I considered dropping the fixes tag but in the end just elected
to leave it (otherwise the closes gets confusing) but apply this to my
slow tree for next merge window (the one in 3 months time).
Hope that works for everyone.
Thanks
Jonathan
>
> > Changes in v2:
> > - Reframe the change around passing the leak detector type explicitly,
> > with the compiler warning as a side effect.
> > - Drop const qualifiers from bool parameters as suggested by Andy
> > Shevchenko.
> > - Link to v1: https://patch.msgid.link/20260929-iio-ltc2983-fix-string-compare-v1-1-d67d612d6ddd@xxxxxxxxx
> >
> > To: Nuno Sá <nuno.sa@xxxxxxxxxx>
> > To: Jonathan Cameron <jic23@xxxxxxxxxx>
> > To: David Lechner <dlechner@xxxxxxxxxxxx>
> > To: Andy Shevchenko <andy@xxxxxxxxxx>
> > To: Liviu Stan <liviu.stan@xxxxxxxxxx>
> > Cc: linux-iio@xxxxxxxxxxxxxxx
> > Cc: linux-kernel@xxxxxxxxxxxxxxx
> > ---
> > drivers/iio/temperature/ltc2983.c | 20 +++++++++++---------
> > 1 file changed, 11 insertions(+), 9 deletions(-)
> >
> > diff --git a/drivers/iio/temperature/ltc2983.c b/drivers/iio/temperature/ltc2983.c
> > index 6efb5252a773..6abaf64c8498 100644
> > --- a/drivers/iio/temperature/ltc2983.c
> > +++ b/drivers/iio/temperature/ltc2983.c
> > @@ -471,8 +471,9 @@ static int __ltc2983_chan_custom_sensor_assign(struct ltc2983_data *st,
> >
> > static struct ltc2983_custom_sensor *
> > __ltc2983_custom_sensor_new(struct ltc2983_data *st, const struct fwnode_handle *fn,
> > - const char *propname, const bool is_steinhart,
> > - const u32 resolution, const bool has_signed)
> > + const char *propname, bool is_steinhart,
> > + const u32 resolution, bool has_signed,
> > + bool is_leak_detector)
> > {
> > struct ltc2983_custom_sensor *new_custom;
> > struct device *dev = &st->spi->dev;
> > @@ -545,7 +546,7 @@ __ltc2983_custom_sensor_new(struct ltc2983_data *st, const struct fwnode_handle
> > * to µK so __convert_to_raw() produces the correct hardware
> > * encoding: P + 273.15 K.
> > */
> > - if ((index % 2) != 0 && !strcmp(propname, "adi,custom-leak-detector"))
> > + if ((index % 2) != 0 && is_leak_detector)
> > temp = temp * 1000000 + 273150000;
> >
> > if ((index % 2) != 0)
> > @@ -836,7 +837,7 @@ ltc2983_thermocouple_new(const struct fwnode_handle *child, struct ltc2983_data
> >
> > thermo->custom = __ltc2983_custom_sensor_new(st, child,
> > propname, false,
> > - 16384, true);
> > + 16384, true, false);
> > if (IS_ERR(thermo->custom))
> > return ERR_CAST(thermo->custom);
> > }
> > @@ -950,7 +951,8 @@ ltc2983_rtd_new(const struct fwnode_handle *child, struct ltc2983_data *st,
> > if (sensor->type == LTC2983_SENSOR_RTD_CUSTOM) {
> > rtd->custom = __ltc2983_custom_sensor_new(st, child,
> > "adi,custom-rtd",
> > - false, 2048, false);
> > + false, 2048, false,
> > + false);
> > if (IS_ERR(rtd->custom))
> > return ERR_CAST(rtd->custom);
> > }
> > @@ -1068,7 +1070,7 @@ ltc2983_thermistor_new(const struct fwnode_handle *child, struct ltc2983_data *s
> > thermistor->custom = __ltc2983_custom_sensor_new(st, child,
> > propname,
> > steinhart,
> > - 64, false);
> > + 64, false, false);
> > if (IS_ERR(thermistor->custom))
> > return ERR_CAST(thermistor->custom);
> > }
> > @@ -1184,7 +1186,7 @@ ltc2983_copper_trace_new(const struct fwnode_handle *child, struct ltc2983_data
> > "adi,custom-copper-trace is required for >1 ohm copper trace\n");
> >
> > ct->custom = __ltc2983_custom_sensor_new(st, child, "adi,custom-copper-trace",
> > - false, 2048, false);
> > + false, 2048, false, false);
> > if (IS_ERR(ct->custom))
> > return ERR_CAST(ct->custom);
> >
> > @@ -1275,7 +1277,7 @@ ltc2983_leak_detector_new(const struct fwnode_handle *child, struct ltc2983_data
> > "adi,custom-leak-detector is required for leak detectors\n");
> >
> > ld->custom = __ltc2983_custom_sensor_new(st, child, "adi,custom-leak-detector",
> > - false, 16, false);
> > + false, 16, false, true);
> > if (IS_ERR(ld->custom))
> > return ERR_CAST(ld->custom);
> >
> > @@ -1488,7 +1490,7 @@ static struct ltc2983_sensor *ltc2983_temp_new(struct fwnode_handle *child,
> > sensor->chan);
> >
> > temp->custom = __ltc2983_custom_sensor_new(st, child, "adi,custom-temp",
> > - false, 4096, true);
> > + false, 4096, true, false);
> > if (IS_ERR(temp->custom))
> > return ERR_CAST(temp->custom);
> >
> >
> > ---
> > base-commit: d2f2868d2f487b418f68db2ef5bd7cf41722ee68
> > change-id: 20260929-iio-ltc2983-fix-string-compare-c919244f019d
> >
> > Best regards,
> > --
> > Carlos Casadiego <cdcp206@xxxxxxxxx>
> >
> >