Re: [PATCH 1/2] Staging:iio:Prefer using BIT macro

From: Lars-Peter Clausen
Date: Mon Feb 08 2016 - 04:15:17 EST


On 02/08/2016 07:48 AM, Bhumika Goyal wrote:
> This patch replaces bit shifting on 1 with the BIT(x) macro.
> This was done with coccinelle:
> @@ int g; @@
> -(1 << g)
> +BIT(g)
>
> Signed-off-by: Bhumika Goyal <bhumirks@xxxxxxxxx>

Hi,

Thanks for the patch.

> ---
> drivers/staging/iio/adc/ad7816.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/staging/iio/adc/ad7816.c b/drivers/staging/iio/adc/ad7816.c
> index 2226051..f631012 100644
> --- a/drivers/staging/iio/adc/ad7816.c
> +++ b/drivers/staging/iio/adc/ad7816.c
> @@ -222,7 +222,7 @@ static ssize_t ad7816_show_value(struct device *dev,
> value = (s8)((data >> AD7816_TEMP_FLOAT_OFFSET) - 103);
> data &= AD7816_TEMP_FLOAT_MASK;
> if (value < 0)
> - data = (1 << AD7816_TEMP_FLOAT_OFFSET) - data;
> + data = BIT(AD7816_TEMP_FLOAT_OFFSET) - data;


But in this case this is a false positive. The intended semantic meaning
here is 2**... not BIT(...). Using BIT() here in my opinion only causes
confusion.

> return sprintf(buf, "%d.%.2d\n", value, data * 25);
> }
> return sprintf(buf, "%u\n", data);
>