crypto: ice: Migrate SCM calls

Migrating all SCM calls made to the old driver to now be made
through the backported upstream driver.

Change-Id: Ic77d315c5a55859f0cc58d7bbf05c0c24d1ef155
Signed-off-by: Siddharth Gupta <sidgup@codeaurora.org>
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
This commit is contained in:
Siddharth Gupta 2019-10-18 14:34:21 -07:00 committed by Elliot Berman
parent 050d2dca67
commit 5d6607bbfc
4 changed files with 27 additions and 1 deletions

View File

@ -1078,6 +1078,19 @@ int __qcom_scm_qsmmu500_wait_safe_toggle(struct device *dev, bool en)
return qcom_scm_call_atomic(dev, &desc);
}
int __qcom_scm_ice_restore_cfg(struct device *dev)
{
struct qcom_scm_desc desc = {
.svc = QCOM_SCM_SVC_KEYSTORE,
.cmd = QCOM_SCM_ICE_RESTORE_KEY_ID,
.owner = ARM_SMCCC_OWNER_TRUSTED_OS
};
desc.arginfo = QCOM_SCM_ARGS(0);
return qcom_scm_call(dev, &desc);
}
void __qcom_scm_init(void)
{
__query_convention();

View File

@ -505,6 +505,12 @@ int qcom_scm_qsmmu500_wait_safe_toggle(bool en)
}
EXPORT_SYMBOL(qcom_scm_qsmmu500_wait_safe_toggle);
int qcom_scm_ice_restore_cfg(void)
{
return __qcom_scm_ice_restore_cfg(__scm->dev);
}
EXPORT_SYMBOL(qcom_scm_ice_restore_cfg);
/**
* qcom_scm_is_available() - Checks if SCM is available
*/

View File

@ -4,6 +4,7 @@
#ifndef __QCOM_SCM_INT_H
#define __QCOM_SCM_INT_H
// SIP Services and Function IDs
#define QCOM_SCM_SVC_BOOT 0x01
#define QCOM_SCM_BOOT_SET_ADDR 0x01
#define QCOM_SCM_BOOT_TERMINATE_PC 0x02
@ -77,7 +78,6 @@ extern int __qcom_scm_assign_mem(struct device *dev,
phys_addr_t dest, size_t dest_sz);
#define QCOM_SCM_IOMMU_TLBINVAL_FLAG 0x00000001
#define QCOM_SCM_SVC_HDCP 0x11
#define QCOM_SCM_HDCP_INVOKE 0x01
extern int __qcom_scm_hdcp_req(struct device *dev,
@ -89,6 +89,11 @@ extern int __qcom_scm_qsmmu500_wait_safe_toggle(struct device *dev,
bool enable);
#define QCOM_SCM_SMMU_CONFIG_ERRATA1_CLIENT_ALL 0x2
// TOS Services and Function IDs
#define QCOM_SCM_SVC_KEYSTORE 0x05
#define QCOM_SCM_ICE_RESTORE_KEY_ID 0x06
extern int __qcom_scm_ice_restore_cfg(struct device *dev);
extern void __qcom_scm_init(void);
/* common error codes */

View File

@ -66,6 +66,7 @@ extern bool qcom_scm_hdcp_available(void);
extern int qcom_scm_hdcp_req(struct qcom_scm_hdcp_req *req, u32 req_cnt,
u32 *resp);
extern int qcom_scm_qsmmu500_wait_safe_toggle(bool en);
extern int qcom_scm_ice_restore_cfg(void);
extern bool qcom_scm_is_available(void);
#else
@ -114,6 +115,7 @@ static inline int qcom_scm_hdcp_req(struct qcom_scm_hdcp_req *req, u32 req_cnt,
u32 *resp) { return -ENODEV; }
static inline int qcom_scm_qsmmu500_wait_safe_toggle(bool en)
{ return -ENODEV; }
static inline int qcom_scm_ice_restore_cfg(void) { return -ENODEV; }
static inline bool qcom_scm_is_available(void) { return false; }
#endif
#endif