firmware: qcom_scm: Add changes for tsens reinit

Add scm call support to reinitialize tsens.

Change-Id: I52c2048cdc6ff1c078b9e6610eea6522221ec96b
Signed-off-by: Ajay Prathi <aprathi@codeaurora.org>
This commit is contained in:
Ajay Prathi
2019-12-19 16:17:10 +05:30
parent 452bee0e6a
commit 5330a6895e
4 changed files with 32 additions and 4 deletions

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: GPL-2.0-only
/* Copyright (c) 2015,2019 The Linux Foundation. All rights reserved.
/* Copyright (c) 2015,2020 The Linux Foundation. All rights reserved.
*/
#include <linux/io.h>
@@ -1870,6 +1870,21 @@ int __qcom_scm_camera_protect_phy_lanes(struct device *dev, bool protect,
return qcom_scm_call(dev, &desc);
}
int __qcom_scm_tsens_reinit(struct device *dev, int *tsens_ret)
{
unsigned int ret;
struct qcom_scm_desc desc = {
.svc = QCOM_SCM_SVC_TSENS,
.cmd = QCOM_SCM_TSENS_INIT_ID,
};
ret = qcom_scm_call(dev, &desc);
if (tsens_ret)
*tsens_ret = desc.res[0];
return ret;
}
int __qcom_scm_ice_restore_cfg(struct device *dev)
{
struct qcom_scm_desc desc = {

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: GPL-2.0-only
/* Copyright (c) 2010,2015,2019 The Linux Foundation. All rights reserved.
/* Copyright (c) 2010,2015,2020 The Linux Foundation. All rights reserved.
* Copyright (C) 2015 Linaro Ltd.
*/
#include <linux/platform_device.h>
@@ -915,6 +915,12 @@ int qcom_scm_camera_protect_phy_lanes(bool protect, u64 regmask)
}
EXPORT_SYMBOL(qcom_scm_camera_protect_phy_lanes);
int qcom_scm_tsens_reinit(int *tsens_ret)
{
return __qcom_scm_tsens_reinit(__scm->dev, tsens_ret);
}
EXPORT_SYMBOL(qcom_scm_tsens_reinit);
int qcom_scm_ice_restore_cfg(void)
{
return __qcom_scm_ice_restore_cfg(__scm->dev);

View File

@@ -1,5 +1,5 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/* Copyright (c) 2010-2015,2019 The Linux Foundation. All rights reserved.
/* Copyright (c) 2010-2015,2020 The Linux Foundation. All rights reserved.
*/
#ifndef __QCOM_SCM_INT_H
#define __QCOM_SCM_INT_H
@@ -228,6 +228,10 @@ extern int __qcom_scm_camera_protect_phy_lanes(struct device *dev,
extern int __qcom_scm_qseecom_do(struct device *dev, u32 cmd_id,
struct scm_desc *desc, bool retry);
#define QCOM_SCM_SVC_TSENS 0x1E
#define QCOM_SCM_TSENS_INIT_ID 0x5
extern int __qcom_scm_tsens_reinit(struct device *dev, int *tsens_ret);
// TOS Services and Function IDs
#define QCOM_SCM_SVC_QSEELOG 0x01
#define QCOM_SCM_QSEELOG_REGISTER 0x06

View File

@@ -1,5 +1,5 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/* Copyright (c) 2010-2015, 2018-2019 The Linux Foundation. All rights reserved.
/* Copyright (c) 2010-2015, 2018-2020 The Linux Foundation. All rights reserved.
* Copyright (C) 2015 Linaro Ltd.
*/
#ifndef __QCOM_SCM_H
@@ -179,6 +179,7 @@ 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_tsens_reinit(int *tsens_ret);
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);
@@ -336,6 +337,8 @@ 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_tsens_reinit(int *tsens_ret)
{ return -ENODEV; }
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; }