firmware: qcom_scm: Add calls for seccam

Add calls to the SCM driver for seccam driver.

Change-Id: I0468057945ab8c84ea6c608fdb194093422a2c3e
Signed-off-by: Siddharth Gupta <sidgup@codeaurora.org>
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
This commit is contained in:
Siddharth Gupta
2019-11-06 16:57:48 -08:00
committed by Elliot Berman
parent 3364df41fa
commit 23a99bc7bc
4 changed files with 28 additions and 0 deletions

View File

@@ -1739,6 +1739,22 @@ int __qcom_scm_qdss_invoke(struct device *dev, phys_addr_t addr, size_t size,
return ret ? : desc.res[0];
}
int __qcom_scm_camera_protect_all(struct device *dev, uint32_t protect,
uint32_t param)
{
struct qcom_scm_desc desc = {
.svc = QCOM_SCM_SVC_CAMERA,
.cmd = QCOM_SCM_CAMERA_PROTECT_ALL,
.owner = ARM_SMCCC_OWNER_SIP
};
desc.args[0] = protect;
desc.args[1] = param;
desc.arginfo = QCOM_SCM_ARGS(2, QCOM_SCM_VAL, QCOM_SCM_VAL);
return qcom_scm_call(dev, &desc);
}
int __qcom_scm_camera_protect_phy_lanes(struct device *dev, bool protect,
u64 regmask)
{

View File

@@ -834,6 +834,12 @@ int qcom_scm_qdss_invoke(phys_addr_t paddr, size_t size, u64 *out)
}
EXPORT_SYMBOL(qcom_scm_qdss_invoke);
int qcom_scm_camera_protect_all(uint32_t protect, uint32_t param)
{
return __qcom_scm_camera_protect_all(__scm->dev, protect, param);
}
EXPORT_SYMBOL(qcom_scm_camera_protect_all);
int qcom_scm_camera_protect_phy_lanes(bool protect, u64 regmask)
{
return __qcom_scm_camera_protect_phy_lanes(__scm->dev, protect,

View File

@@ -208,7 +208,10 @@ extern int __qcom_scm_qdss_invoke(struct device *dev, phys_addr_t addr,
size_t size, u64 *out);
#define QCOM_SCM_SVC_CAMERA 0x18
#define QCOM_SCM_CAMERA_PROTECT_ALL 0x06
#define QCOM_SCM_CAMERA_PROTECT_PHY_LANES 0x07
extern int __qcom_scm_camera_protect_all(struct device *dev, uint32_t protect,
uint32_t param);
extern int __qcom_scm_camera_protect_phy_lanes(struct device *dev,
bool protect, u64 regmask);

View File

@@ -164,6 +164,7 @@ 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_smmu_notify_secure_lut(u64 dev_id, bool secure);
extern int qcom_scm_qdss_invoke(phys_addr_t addr, size_t size, u64 *out);
extern int qcom_scm_camera_protect_all(uint32_t protect, uint32_t param);
extern int qcom_scm_camera_protect_phy_lanes(bool protect, u64 regmask);
extern int qcom_scm_ice_restore_cfg(void);
extern int qcom_scm_get_tz_log_feat_id(u64 *version);
@@ -311,6 +312,8 @@ static inline int qcom_scm_smmu_notify_secure_lut(u64 dev_id, bool secure)
{ return -EINVAL; }
static inline int qcom_scm_qdss_invoke(phys_addr_t data, size_t size, u64 *out)
{ return -EINVAL; }
static inline int qcom_scm_camera_protect_all(uint32_t protect, uint32_t param)
{ return -ENODEV; }
static inline int qcom_scm_camera_protect_phy_lanes(bool protect, u64 regmask)
{ return -EINVAL; }
static inline int qcom_scm_ice_restore_cfg(void) { return -ENODEV; }