summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorAbhinav Kumar <abhinavk@codeaurora.org>2017-11-07 22:21:22 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2017-11-09 20:53:59 -0800
commitef193b7094d3baf5521de0858625ab6cde04e58a (patch)
tree1c62c13ea9f65b320b0492cac64b948a902e3e17 /include/linux
parent10dc161b22a6bcd1d8f0dcceff7a6917fe305167 (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.h12
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 */