summaryrefslogtreecommitdiffstats
path: root/drivers/remoteproc/qcom_q6v5_pil.c
diff options
context:
space:
mode:
authorBjorn Andersson <bjorn.andersson@linaro.org>2017-07-24 22:56:43 -0700
committerBjorn Andersson <bjorn.andersson@linaro.org>2017-08-02 12:43:20 -0700
commit1e140df0496541c473e5d40b0da5d2d626b2e343 (patch)
treed872019d45a5a7da0c9a9478fd6e30ec011328cb /drivers/remoteproc/qcom_q6v5_pil.c
parent1b0ef9068f053d8057b5ebe3cbff692b071bdf73 (diff)
downloadlinux-1e140df0496541c473e5d40b0da5d2d626b2e343.tar.gz
linux-1e140df0496541c473e5d40b0da5d2d626b2e343.tar.bz2
linux-1e140df0496541c473e5d40b0da5d2d626b2e343.zip
remoteproc: qcom: Add support for SSR notifications
This adds the remoteproc part of subsystem restart, which is responsible for emitting notifications to other processors in the system about a dying remoteproc instance. These notifications are propagated to the various communication systems in the various remote processors to shut down communication links that was left in a dangling state as the remoteproc was stopped (or crashed). Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Diffstat (limited to 'drivers/remoteproc/qcom_q6v5_pil.c')
-rw-r--r--drivers/remoteproc/qcom_q6v5_pil.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/remoteproc/qcom_q6v5_pil.c b/drivers/remoteproc/qcom_q6v5_pil.c
index 8fd697a3cf8f..fc3ef1e81433 100644
--- a/drivers/remoteproc/qcom_q6v5_pil.c
+++ b/drivers/remoteproc/qcom_q6v5_pil.c
@@ -153,6 +153,7 @@ struct q6v5 {
size_t mpss_size;
struct qcom_rproc_subdev smd_subdev;
+ struct qcom_rproc_ssr ssr_subdev;
};
static int q6v5_regulator_init(struct device *dev, struct reg_info *regs,
@@ -1038,6 +1039,7 @@ static int q6v5_probe(struct platform_device *pdev)
}
qcom_add_smd_subdev(rproc, &qproc->smd_subdev);
+ qcom_add_ssr_subdev(rproc, &qproc->ssr_subdev, "mpss");
ret = rproc_add(rproc);
if (ret)
@@ -1058,6 +1060,7 @@ static int q6v5_remove(struct platform_device *pdev)
rproc_del(qproc->rproc);
qcom_remove_smd_subdev(qproc->rproc, &qproc->smd_subdev);
+ qcom_remove_ssr_subdev(qproc->rproc, &qproc->ssr_subdev);
rproc_free(qproc->rproc);
return 0;