drm: helper functions for hdcp2 seq_num to from u32
Library functions for endianness are aligned for 16/32/64 bits. But hdcp sequence numbers are 24bits(big endian). So for their conversion to and from u32 helper functions are developed. v2: Comment is updated. [Daniel] Reviewed-by Uma. Signed-off-by: Ramalingam C <ramalingam.c@intel.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Uma Shankar <uma.shankar@intel.com> Acked-by: Dave Airlie <airlied@gmail.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: https://patchwork.freedesktop.org/patch/msgid/1550219730-17734-10-git-send-email-ramalingam.c@intel.com
This commit is contained in:
parent
1bf7cb4d8f
commit
3209706018
|
@ -250,4 +250,22 @@ struct hdcp2_dp_errata_stream_type {
|
|||
#define HDCP_2_2_HDMI_RXSTATUS_READY(x) ((x) & BIT(2))
|
||||
#define HDCP_2_2_HDMI_RXSTATUS_REAUTH_REQ(x) ((x) & BIT(3))
|
||||
|
||||
/*
|
||||
* Helper functions to convert 24bit big endian hdcp sequence number to
|
||||
* host format and back
|
||||
*/
|
||||
static inline
|
||||
u32 drm_hdcp2_seq_num_to_u32(u8 seq_num[HDCP_2_2_SEQ_NUM_LEN])
|
||||
{
|
||||
return (u32)(seq_num[2] | seq_num[1] << 8 | seq_num[0] << 16);
|
||||
}
|
||||
|
||||
static inline
|
||||
void drm_hdcp2_u32_to_seq_num(u8 seq_num[HDCP_2_2_SEQ_NUM_LEN], u32 val)
|
||||
{
|
||||
seq_num[0] = val >> 16;
|
||||
seq_num[1] = val >> 8;
|
||||
seq_num[2] = val;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue