From 54c70d98b93579dbada7be653dc13f517722559e Mon Sep 17 00:00:00 2001 From: Konstantin Dorfman Date: Sun, 1 Dec 2019 13:07:35 +0200 Subject: [PATCH] soc: qcom: Add spss transport for Glink Probe driver This changes adds support for Secure Processor communication. Change-Id: I888eda75c5a6a25a70064ebf9b30fa46ef218f6c Signed-off-by: Konstantin Dorfman --- drivers/soc/qcom/glink_probe.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/drivers/soc/qcom/glink_probe.c b/drivers/soc/qcom/glink_probe.c index 03d10c866259..a7a8da98ec00 100644 --- a/drivers/soc/qcom/glink_probe.c +++ b/drivers/soc/qcom/glink_probe.c @@ -84,6 +84,26 @@ static void glink_probe_smem_unreg(struct edge_info *einfo) einfo->glink = NULL; GLINK_INFO("unregister for %s\n", einfo->ssr_label); } +static int glink_probe_spss_reg(struct edge_info *einfo) +{ + struct device *dev = einfo->dev; + + einfo->glink = qcom_glink_spss_register(dev, einfo->node); + if (IS_ERR_OR_NULL(einfo->glink)) { + GLINK_ERR(dev, "register failed for %s\n", einfo->ssr_label); + einfo->glink = NULL; + } + + return 0; +} + +static void glink_probe_spss_unreg(struct edge_info *einfo) +{ + if (einfo->glink) + qcom_glink_spss_unregister(einfo->glink); + + einfo->glink = NULL; +} static void probe_subsystem(struct device *dev, struct device_node *np) { @@ -120,6 +140,9 @@ static void probe_subsystem(struct device *dev, struct device_node *np) if (!strcmp(transport, "smem")) { einfo->register_fn = glink_probe_smem_reg; einfo->unregister_fn = glink_probe_smem_unreg; + } else if (!strcmp(transport, "spss")) { + einfo->register_fn = glink_probe_spss_reg; + einfo->unregister_fn = glink_probe_spss_unreg; } einfo->nb.notifier_call = glink_probe_ssr_cb;