2024-01-29 19:57:53

by David Lechner

[permalink] [raw]
Subject: [PATCH v2 2/2] iio: adc: ad7380: don't use bool in FIELD_PREP

Although this technically works, it is better to avoid using bool as
a bit value.

Fixes sparse warning:

drivers/iio/adc/ad7380.c:353:34: sparse: sparse: dubious: x & !y

Reported-by: kernel test robot <[email protected]>
Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/
Signed-off-by: David Lechner <[email protected]>
---

v2 changes:
* use correct terinary operator syntax (had typo of : instead of ?)

drivers/iio/adc/ad7380.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/iio/adc/ad7380.c b/drivers/iio/adc/ad7380.c
index 44b8b18ab213..abd746aef868 100644
--- a/drivers/iio/adc/ad7380.c
+++ b/drivers/iio/adc/ad7380.c
@@ -350,7 +350,8 @@ static int ad7380_init(struct ad7380_state *st)
/* select internal or external reference voltage */
ret = regmap_update_bits(st->regmap, AD7380_REG_ADDR_CONFIG1,
AD7380_CONFIG1_REFSEL,
- FIELD_PREP(AD7380_CONFIG1_REFSEL, !!st->vref));
+ FIELD_PREP(AD7380_CONFIG1_REFSEL,
+ st->vref ? 1 : 0));
if (ret < 0)
return ret;

--
2.43.0



2024-02-04 14:47:02

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [PATCH v2 2/2] iio: adc: ad7380: don't use bool in FIELD_PREP

On Mon, 29 Jan 2024 13:56:08 -0600
David Lechner <[email protected]> wrote:

> Although this technically works, it is better to avoid using bool as
> a bit value.
>
> Fixes sparse warning:
>
> drivers/iio/adc/ad7380.c:353:34: sparse: sparse: dubious: x & !y
>
> Reported-by: kernel test robot <[email protected]>
> Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/
> Signed-off-by: David Lechner <[email protected]>
Applied.
> ---
>
> v2 changes:
> * use correct terinary operator syntax (had typo of : instead of ?)
>
> drivers/iio/adc/ad7380.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/iio/adc/ad7380.c b/drivers/iio/adc/ad7380.c
> index 44b8b18ab213..abd746aef868 100644
> --- a/drivers/iio/adc/ad7380.c
> +++ b/drivers/iio/adc/ad7380.c
> @@ -350,7 +350,8 @@ static int ad7380_init(struct ad7380_state *st)
> /* select internal or external reference voltage */
> ret = regmap_update_bits(st->regmap, AD7380_REG_ADDR_CONFIG1,
> AD7380_CONFIG1_REFSEL,
> - FIELD_PREP(AD7380_CONFIG1_REFSEL, !!st->vref));
> + FIELD_PREP(AD7380_CONFIG1_REFSEL,
> + st->vref ? 1 : 0));
> if (ret < 0)
> return ret;
>