
Hi Daniel,
On Wed, Aug 14, 2019 at 9:19 AM Philippe Reynes philippe.reynes@softathome.com wrote:
From: Kursad Oney kursad.oney@broadcom.com
wait_for_bit_le32 and wait_for_bit_le16 use the raw I/O functions which would default to big-endian on BE systems. Create the generic equivalents to use the native endianness.
Signed-off-by: Kursad Oney kursad.oney@broadcom.com Reviewed-by: Philippe Reynes philippe.reynes@softathome.com
include/wait_bit.h | 2 ++ 1 file changed, 2 insertions(+)
Changelog: v3:
- avoid double definition when readw_be/readl_be is defined
v2:
- move this patch from third place to second place
diff --git a/include/wait_bit.h b/include/wait_bit.h index 82e09da..79da081 100644 --- a/include/wait_bit.h +++ b/include/wait_bit.h @@ -72,10 +72,12 @@ static inline int wait_for_bit_##sfx(const void *reg, \
BUILD_WAIT_FOR_BIT(8, u8, readb) BUILD_WAIT_FOR_BIT(le16, u16, readw) +BUILD_WAIT_FOR_BIT(16, u16, readw) #ifdef readw_be BUILD_WAIT_FOR_BIT(be16, u16, readw_be) #endif BUILD_WAIT_FOR_BIT(le32, u32, readl) +BUILD_WAIT_FOR_BIT(32, u32, readl) #ifdef readl_be BUILD_WAIT_FOR_BIT(be32, u32, readl_be)
#endif
2.7.4
Philippe and I have a question about the wait_for_bit macros for MIPS if you don't mind.
It seems in the current code, wait_for_bit_le32 seems to default to readl for MIPS and wait_for_bit_le16 to readw. Is this correct? If so, our wait_for_bit_32 macro would default to LE on MIPS and we need to change that. However, readl seems like it would default to host endianness. Can you help us out?
Thanks! kursad