summaryrefslogtreecommitdiffstats
path: root/drivers/remoteproc/qcom_common.h
diff options
context:
space:
mode:
authorDmitry Baryshkov <dmitry.baryshkov@linaro.org>2024-06-22 00:03:44 +0200
committerBjorn Andersson <andersson@kernel.org>2024-06-25 16:40:38 +0200
commit5b9f51b200dcb2c3924ecbff324fa52f1faa84d3 (patch)
treef84c9e6be6ab33aa38f5b4a71221c38a8108b8e7 /drivers/remoteproc/qcom_common.h
parentMerge branch '20240622-qcom-pd-mapper-v9-0-a84ee3591c8e@linaro.org' of https:... (diff)
downloadlinux-5b9f51b200dcb2c3924ecbff324fa52f1faa84d3.tar.xz
linux-5b9f51b200dcb2c3924ecbff324fa52f1faa84d3.zip
remoteproc: qcom: enable in-kernel PD mapper
Request in-kernel protection domain mapper to be started before starting Qualcomm DSP and release it once DSP is stopped. Once all DSPs are stopped, the PD mapper will be stopped too. Reviewed-by: Chris Lew <quic_clew@quicinc.com> Tested-by: Steev Klimaszewski <steev@kali.org> Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Link: https://lore.kernel.org/r/20240622-qcom-pd-mapper-v9-5-a84ee3591c8e@linaro.org Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Diffstat (limited to 'drivers/remoteproc/qcom_common.h')
-rw-r--r--drivers/remoteproc/qcom_common.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/remoteproc/qcom_common.h b/drivers/remoteproc/qcom_common.h
index 9ef4449052a9..b07fbaa091a0 100644
--- a/drivers/remoteproc/qcom_common.h
+++ b/drivers/remoteproc/qcom_common.h
@@ -34,6 +34,13 @@ struct qcom_rproc_ssr {
struct qcom_ssr_subsystem *info;
};
+struct qcom_rproc_pdm {
+ struct rproc_subdev subdev;
+ struct device *dev;
+ int index;
+ struct auxiliary_device *adev;
+};
+
void qcom_minidump(struct rproc *rproc, unsigned int minidump_id,
void (*rproc_dumpfn_t)(struct rproc *rproc,
struct rproc_dump_segment *segment, void *dest, size_t offset,
@@ -52,6 +59,9 @@ void qcom_add_ssr_subdev(struct rproc *rproc, struct qcom_rproc_ssr *ssr,
const char *ssr_name);
void qcom_remove_ssr_subdev(struct rproc *rproc, struct qcom_rproc_ssr *ssr);
+void qcom_add_pdm_subdev(struct rproc *rproc, struct qcom_rproc_pdm *pdm);
+void qcom_remove_pdm_subdev(struct rproc *rproc, struct qcom_rproc_pdm *pdm);
+
#if IS_ENABLED(CONFIG_QCOM_SYSMON)
struct qcom_sysmon *qcom_add_sysmon_subdev(struct rproc *rproc,
const char *name,