adis: simplify 'adis_update_bits' macros
authorNuno Sá <nuno.sa@analog.com>
Sat, 22 Jan 2022 13:09:04 +0000 (14:09 +0100)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sun, 23 Jan 2022 18:03:37 +0000 (18:03 +0000)
There's no need to use  '__builtin_choose_expr' to choose the right
call to 'adis_update_bits_base()'. We can change the 'BUILD_BUG_ON()'
condition so that it makes sure only the supported sizes are
passed in. With that, we can just use 'sizeof(val)' as the size argument
of 'adis_update_bits_base()'.

Signed-off-by: Nuno Sá <nuno.sa@analog.com>
Link: https://lore.kernel.org/r/20220122130905.99-2-nuno.sa@analog.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
include/linux/iio/imu/adis.h

index 7c02f52..11754f9 100644 (file)
@@ -381,10 +381,8 @@ static inline int adis_update_bits_base(struct adis *adis, unsigned int reg,
  * @val can lead to undesired behavior if the register to update is 16bit.
  */
 #define adis_update_bits(adis, reg, mask, val) ({                      \
-       BUILD_BUG_ON(sizeof(val) == 1 || sizeof(val) == 8);             \
-       __builtin_choose_expr(sizeof(val) == 4,                         \
-               adis_update_bits_base(adis, reg, mask, val, 4),         \
-               adis_update_bits_base(adis, reg, mask, val, 2));        \
+       BUILD_BUG_ON(sizeof(val) != 2 && sizeof(val) != 4);             \
+       adis_update_bits_base(adis, reg, mask, val, sizeof(val));       \
 })
 
 /**
@@ -399,10 +397,8 @@ static inline int adis_update_bits_base(struct adis *adis, unsigned int reg,
  * @val can lead to undesired behavior if the register to update is 16bit.
  */
 #define __adis_update_bits(adis, reg, mask, val) ({                    \
-       BUILD_BUG_ON(sizeof(val) == 1 || sizeof(val) == 8);             \
-       __builtin_choose_expr(sizeof(val) == 4,                         \
-               __adis_update_bits_base(adis, reg, mask, val, 4),       \
-               __adis_update_bits_base(adis, reg, mask, val, 2));      \
+       BUILD_BUG_ON(sizeof(val) != 2 && sizeof(val) != 4);             \
+       __adis_update_bits_base(adis, reg, mask, val, sizeof(val));     \
 })
 
 int adis_enable_irq(struct adis *adis, bool enable);