driver : hdcp_qseecom: Retry HDCP key verify when Qseecomd down
HDCP has a dependency on Qseecomd for HDCP key verification and other SCM calls. Qseecomd takes a lot of time to be available during boot because of which HDCP init fails. Adding retry mechanism only when there is hdcp key verification failure due to Qseecomd not starting in time. For other error codes, like HDCP key not programmed, there will be no retry. If Qseecomd doesn’t come up within maximum retries, code will stop retrying and hdcp key verification will fail. For each retry, there is a sleep of 100ms. The number of retries can be changed from the dtsi file. By default, we are allowing 40 retries but it can be changed. 40 retries are based on the qseecomd KPI which can be anywhere between 2.9 sec to 3.6 sec. Change-Id: Ieb6ed6c25664ef8609602711f664cab045ce6979 Signed-off-by: Shubham Dhiman <quic_shubhamd@quicinc.com>
This commit is contained in:
parent
e4dd5fa2e8
commit
17080ff602
1 changed files with 9 additions and 1 deletions
|
|
@ -1,6 +1,6 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (c) 2021-2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2021-2023, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef __HDCP_QSEECOM_H
|
||||
|
|
@ -79,6 +79,8 @@ int hdcp2_open_stream(void *ctx, uint8_t vc_payload_id,
|
|||
uint8_t stream_number, uint32_t *stream_id);
|
||||
int hdcp2_close_stream(void *ctx, uint32_t stream_id);
|
||||
int hdcp2_force_encryption(void *ctx, uint32_t enable);
|
||||
void hdcp1_set_hdcp_key_verify_retries(void *ctx, u32 max_hdcp_key_verify_retries);
|
||||
void hdcp2_set_hdcp_key_verify_retries(void *ctx, u32 max_hdcp_key_verify_retries);
|
||||
#else
|
||||
static inline void *hdcp1_init(void)
|
||||
{
|
||||
|
|
@ -148,6 +150,12 @@ static inline int hdcp2_force_encryption(void *ctx, uint32_t enable)
|
|||
{
|
||||
return 0;
|
||||
}
|
||||
static inline void hdcp1_set_hdcp_key_verify_retries(void *ctx, u32 max_hdcp_key_verify_retries)
|
||||
{
|
||||
}
|
||||
static inline void hdcp2_set_hdcp_key_verify_retries(void *ctx, u32 max_hdcp_key_verify_retries)
|
||||
{
|
||||
}
|
||||
#endif /* CONFIG_HDCP_QSEECOM */
|
||||
|
||||
#endif /* __HDCP_QSEECOM_H */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue