adis: simplify 'adis_update_bits' macros
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>
This commit is contained in:
parent
90e33e1b3d
commit
da59367705
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user