Commit da593677 authored by Nuno Sá's avatar Nuno Sá Committed by Jonathan Cameron
Browse files

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: default avatarNuno Sá <nuno.sa@analog.com>
Link: https://lore.kernel.org/r/20220122130905.99-2-nuno.sa@analog.com


Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent 90e33e1b
Loading
Loading
Loading
Loading
+4 −8
Original line number Diff line number Diff line
@@ -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);