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:

committed by
Elliot Berman

parent
3364df41fa
commit
23a99bc7bc
@@ -1739,6 +1739,22 @@ int __qcom_scm_qdss_invoke(struct device *dev, phys_addr_t addr, size_t size,
|
|||||||
return ret ? : desc.res[0];
|
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,
|
int __qcom_scm_camera_protect_phy_lanes(struct device *dev, bool protect,
|
||||||
u64 regmask)
|
u64 regmask)
|
||||||
{
|
{
|
||||||
|
@@ -834,6 +834,12 @@ int qcom_scm_qdss_invoke(phys_addr_t paddr, size_t size, u64 *out)
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL(qcom_scm_qdss_invoke);
|
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)
|
int qcom_scm_camera_protect_phy_lanes(bool protect, u64 regmask)
|
||||||
{
|
{
|
||||||
return __qcom_scm_camera_protect_phy_lanes(__scm->dev, protect,
|
return __qcom_scm_camera_protect_phy_lanes(__scm->dev, protect,
|
||||||
|
@@ -208,7 +208,10 @@ extern int __qcom_scm_qdss_invoke(struct device *dev, phys_addr_t addr,
|
|||||||
size_t size, u64 *out);
|
size_t size, u64 *out);
|
||||||
|
|
||||||
#define QCOM_SCM_SVC_CAMERA 0x18
|
#define QCOM_SCM_SVC_CAMERA 0x18
|
||||||
|
#define QCOM_SCM_CAMERA_PROTECT_ALL 0x06
|
||||||
#define QCOM_SCM_CAMERA_PROTECT_PHY_LANES 0x07
|
#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,
|
extern int __qcom_scm_camera_protect_phy_lanes(struct device *dev,
|
||||||
bool protect, u64 regmask);
|
bool protect, u64 regmask);
|
||||||
|
|
||||||
|
@@ -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_qsmmu500_wait_safe_toggle(bool en);
|
||||||
extern int qcom_scm_smmu_notify_secure_lut(u64 dev_id, bool secure);
|
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_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_camera_protect_phy_lanes(bool protect, u64 regmask);
|
||||||
extern int qcom_scm_ice_restore_cfg(void);
|
extern int qcom_scm_ice_restore_cfg(void);
|
||||||
extern int qcom_scm_get_tz_log_feat_id(u64 *version);
|
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; }
|
{ return -EINVAL; }
|
||||||
static inline int qcom_scm_qdss_invoke(phys_addr_t data, size_t size, u64 *out)
|
static inline int qcom_scm_qdss_invoke(phys_addr_t data, size_t size, u64 *out)
|
||||||
{ return -EINVAL; }
|
{ 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)
|
static inline int qcom_scm_camera_protect_phy_lanes(bool protect, u64 regmask)
|
||||||
{ return -EINVAL; }
|
{ return -EINVAL; }
|
||||||
static inline int qcom_scm_ice_restore_cfg(void) { return -ENODEV; }
|
static inline int qcom_scm_ice_restore_cfg(void) { return -ENODEV; }
|
||||||
|
Reference in New Issue
Block a user