diff options
| author | Abhinav Kumar <abhinavk@codeaurora.org> | 2017-11-07 22:21:22 -0800 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-11-09 20:53:59 -0800 |
| commit | ef193b7094d3baf5521de0858625ab6cde04e58a (patch) | |
| tree | 1c62c13ea9f65b320b0492cac64b948a902e3e17 /include/linux | |
| parent | 10dc161b22a6bcd1d8f0dcceff7a6917fe305167 (diff) | |
drm/msm: add SRM support for HDCP 1.4
Add support for clients to notify SRM update
to HDCP 1.x driver.
Integrate the SRM validation check in the HDCP 1.x
authentication flow to check HDCP 1.x receiver/repeater
KSV against the SRM revoked list and fail the authentication
if the sink is found to be present in the list.
Change-Id: I6615122f785bde94cb746ec4df7ab63b9f878528
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/hdcp_qseecom.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/include/linux/hdcp_qseecom.h b/include/linux/hdcp_qseecom.h index 8e1b853e738e..11c2af725bb1 100644 --- a/include/linux/hdcp_qseecom.h +++ b/include/linux/hdcp_qseecom.h @@ -15,6 +15,8 @@ #include <linux/types.h> #define HDCP_MAX_MESSAGE_PARTS 4 +#define RECV_ID_SIZE 5 +#define MAX_DEVICES_SUPPORTED 127 enum hdcp_lib_wakeup_cmd { HDCP_LIB_WKUP_CMD_INVALID, @@ -115,6 +117,10 @@ static inline char *hdcp_lib_cmd_to_str(uint32_t cmd) } } +struct hdcp_srm_device_id_t { + uint8_t data[RECV_ID_SIZE]; +}; + struct hdcp_txmtr_ops { int (*wakeup)(struct hdcp_lib_wakeup_data *data); bool (*feature_supported)(void *phdcpcontext); @@ -148,6 +154,12 @@ void hdcp_library_deregister(void *phdcpcontext); bool hdcp1_check_if_supported_load_app(void); int hdcp1_set_keys(uint32_t *aksv_msb, uint32_t *aksv_lsb); int hdcp1_set_enc(bool enable); +int hdcp1_validate_receiver_ids(struct hdcp_srm_device_id_t *device_ids, +uint32_t device_id_cnt); void hdcp1_cache_repeater_topology(void *hdcp1_cached_tp); void hdcp1_notify_topology(void); +void hdcp1_client_register(void *client_ctx, +struct hdcp_client_ops *ops); +void hdcp1_client_unregister(void); + #endif /* __HDCP_QSEECOM_H */ |
