#ifndef __HDCP_FLAG_H__
#define __HDCP_FLAG_H__

#define HDCP_STATUS_DP_BIT    (4)
#define HDCP_STATUS_WIDI_BIT  (0)

#define HDCP_STATUS_REQ_BIT   (16)
#define HDCP_STATUS_CUR_BIT   (0)

#define HDCP_STATUS_REQ_MASK       (0xF << HDCP_STATUS_REQ_BIT)
#define HDCP_STATUS_DP_CUR_MASK    (0xF << HDCP_STATUS_DP_BIT << HDCP_STATUS_CUR_BIT)
#define HDCP_STATUS_WIDI_CUR_MASK  (0xF << HDCP_STATUS_WIDI_BIT << HDCP_STATUS_CUR_BIT)

#define PARSE_REQ_STATUS(a)        ((HDCP_STATUS_REQ_MASK & a) >> HDCP_STATUS_REQ_BIT)
#define PARSE_DP_CUR_STATUS(a)     ((HDCP_STATUS_DP_CUR_MASK & a) >> HDCP_STATUS_DP_BIT >> HDCP_STATUS_CUR_BIT)
#define PARSE_WIDI_CUR_STATUS(a)   ((HDCP_STATUS_WIDI_CUR_MASK & a) >> HDCP_STATUS_WIDI_BIT >> HDCP_STATUS_CUR_BIT)

#define SET_REQ_STATUS(a)          tlApiSecSetHdcpFlag(a << HDCP_STATUS_REQ_BIT, HDCP_STATUS_REQ_MASK)

#define SET_DP_CUR_STATUS(a)       tlApiSecSetHdcpFlag(a << HDCP_STATUS_DP_BIT << HDCP_STATUS_CUR_BIT, HDCP_STATUS_DP_CUR_MASK)
#define SET_WIDI_CUR_STATUS(a)     tlApiSecSetHdcpFlag(a << HDCP_STATUS_WIDI_BIT << HDCP_STATUS_CUR_BIT, HDCP_STATUS_WIDI_CUR_MASK)

#define HDCP_NOT_USED              (0x0)
#define HDCP_1_x                   (0x1)
#define HDCP_2_0                   (0x2)
#define HDCP_2_1                   (0x3)
#define HDCP_2_2_TYPE1             (0x4)
#define HDCP_NO_CONNECTION         (0xF)

#define is_okay_widi_dp_status(a, b) \
	((b == 0) || (PARSE_WIDI_CUR_STATUS(a) >= b && PARSE_DP_CUR_STATUS(a) >= b))


#endif /* __HDCP_FLAG_H__ */
