diff options
author | Vivek Gautam <vivek.gautam@codeaurora.org> | 2019-09-20 10:04:28 +0200 |
---|---|---|
committer | Will Deacon <will@kernel.org> | 2019-11-04 18:48:37 +0100 |
commit | 5eb0e0e4f90addc6b79ebf1cb4b06b56b09f09de (patch) | |
tree | 6c66008c21ef8a2810e1a3d47cae12a4724ab244 /drivers/firmware/qcom_scm.c | |
parent | firmware: qcom_scm-64: Add atomic version of qcom_scm_call (diff) | |
download | linux-5eb0e0e4f90addc6b79ebf1cb4b06b56b09f09de.tar.xz linux-5eb0e0e4f90addc6b79ebf1cb4b06b56b09f09de.zip |
firmware/qcom_scm: Add scm call to handle smmu errata
Qcom's smmu-500 needs to toggle wait-for-safe sequence to
handle TLB invalidation sync's.
Few firmwares allow doing that through SCM interface.
Add API to toggle wait for safe from firmware through a
SCM call.
Signed-off-by: Vivek Gautam <vivek.gautam@codeaurora.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Reviewed-by: Stephen Boyd <swboyd@chromium.org>
Acked-by: Andy Gross <agross@kernel.org>
Signed-off-by: Sai Prakash Ranjan <saiprakash.ranjan@codeaurora.org>
Signed-off-by: Will Deacon <will@kernel.org>
Diffstat (limited to 'drivers/firmware/qcom_scm.c')
-rw-r--r-- | drivers/firmware/qcom_scm.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c index 4802ab170fe5..a729e05c21b8 100644 --- a/drivers/firmware/qcom_scm.c +++ b/drivers/firmware/qcom_scm.c @@ -345,6 +345,12 @@ int qcom_scm_iommu_secure_ptbl_init(u64 addr, u32 size, u32 spare) } EXPORT_SYMBOL(qcom_scm_iommu_secure_ptbl_init); +int qcom_scm_qsmmu500_wait_safe_toggle(bool en) +{ + return __qcom_scm_qsmmu500_wait_safe_toggle(__scm->dev, en); +} +EXPORT_SYMBOL(qcom_scm_qsmmu500_wait_safe_toggle); + int qcom_scm_io_readl(phys_addr_t addr, unsigned int *val) { return __qcom_scm_io_readl(__scm->dev, addr, val); |