soc: qcom: Migrate SCM calls in remoteqdss

Migrate scm_call2 usage to new SCM driver in remoteqdss.

Change-Id: Idd25aab0c5fb7cc55ee81c8f685981b8362a7b45
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
This commit is contained in:
Elliot Berman 2019-10-11 18:46:36 -07:00
commit 3e20670941
4 changed files with 36 additions and 0 deletions

View file

@ -1497,6 +1497,28 @@ int __qcom_scm_qsmmu500_wait_safe_toggle(struct device *dev, bool en)
return qcom_scm_call_atomic(dev, &desc);
}
int __qcom_scm_qdss_invoke(struct device *dev, phys_addr_t addr, size_t size,
u64 *out)
{
int ret;
struct qcom_scm_desc desc = {
.svc = QCOM_SCM_SVC_QDSS,
.cmd = QCOM_SCM_QDSS_INVOKE,
.owner = ARM_SMCCC_OWNER_SIP
};
desc.args[0] = addr;
desc.args[1] = size;
desc.arginfo = QCOM_SCM_ARGS(2, QCOM_SCM_RO, QCOM_SCM_VAL);
ret = qcom_scm_call(dev, &desc);
if (out)
*out = desc.res[1];
return ret ? : desc.res[0];
}
int __qcom_scm_ice_restore_cfg(struct device *dev)
{
struct qcom_scm_desc desc = {

View file

@ -672,6 +672,12 @@ int qcom_scm_qsmmu500_wait_safe_toggle(bool en)
}
EXPORT_SYMBOL(qcom_scm_qsmmu500_wait_safe_toggle);
int qcom_scm_qdss_invoke(phys_addr_t paddr, size_t size, u64 *out)
{
return __qcom_scm_qdss_invoke(__scm->dev, paddr, size, out);
}
EXPORT_SYMBOL(qcom_scm_qdss_invoke);
int qcom_scm_ice_restore_cfg(void)
{
return __qcom_scm_ice_restore_cfg(__scm->dev);

View file

@ -161,6 +161,11 @@ extern int __qcom_scm_qsmmu500_wait_safe_toggle(struct device *dev,
bool enable);
#define QCOM_SCM_SMMU_CONFIG_ERRATA1_CLIENT_ALL 0x2
#define QCOM_SCM_SVC_QDSS 0x16
#define QCOM_SCM_QDSS_INVOKE 0x01
extern int __qcom_scm_qdss_invoke(struct device *dev, phys_addr_t addr,
size_t size, u64 *out);
// TOS Services and Function IDs
#define QCOM_SCM_SVC_QSEELOG 0x01
#define QCOM_SCM_QSEELOG_REGISTER 0x06

View file

@ -97,6 +97,7 @@ extern int qcom_scm_create_shm_bridge(u64 pfn_and_ns_perm_flags,
u64 ns_vmids, u64 *handle);
extern int qcom_scm_smmu_change_pgtbl_format(u64 dev_id, int cbndx);
extern int qcom_scm_qsmmu500_wait_safe_toggle(bool en);
extern int qcom_scm_qdss_invoke(phys_addr_t addr, size_t size, u64 *out);
extern int qcom_scm_ice_restore_cfg(void);
extern int qcom_scm_get_tz_log_feat_id(u64 *version);
extern int qcom_scm_register_qsee_log_buf(phys_addr_t buf, size_t len);
@ -189,6 +190,8 @@ static inline int qcom_scm_smmu_change_pgtbl_format(u64 dev_id, int cbndx)
{ return -ENODEV; }
static inline int qcom_scm_qsmmu500_wait_safe_toggle(bool en)
{ return -ENODEV; }
static inline int qcom_scm_qdss_invoke(phys_addr_t data, size_t size, u64 *out)
{ return -EINVAL; }
static inline int qcom_scm_ice_restore_cfg(void) { return -ENODEV; }
static inline int qcom_scm_get_tz_log_feat_id(u64 *version)
{ return -ENODEV; }