Add get_unaligned_le24(), mirroring the helper of the same name in Linux, to read a 24-bit little-endian value from a possibly unaligned buffer. The MediaTek HDMI driver uses it to pack InfoFrame bytes into the 24-bit little-endian controller register fields.
Signed-off-by: Julien Stephan <[email protected]> --- include/asm-generic/unaligned.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/include/asm-generic/unaligned.h b/include/asm-generic/unaligned.h index 9e5d93ec304..a68bd8f1991 100644 --- a/include/asm-generic/unaligned.h +++ b/include/asm-generic/unaligned.h @@ -22,6 +22,16 @@ static inline u16 get_unaligned_le16(const void *p) return le16_to_cpu(__get_unaligned_t(__le16, p)); } +static inline u32 __get_unaligned_le24(const u8 *p) +{ + return p[0] | p[1] << 8 | p[2] << 16; +} + +static inline u32 get_unaligned_le24(const void *p) +{ + return __get_unaligned_le24(p); +} + static inline u32 get_unaligned_le32(const void *p) { return le32_to_cpu(__get_unaligned_t(__le32, p)); -- 2.55.0
