rpmsg: glink: Integrate glink_ssr in qcom_glink
authorBjorn Andersson <bjorn.andersson@linaro.org>
Thu, 23 Apr 2020 00:37:35 +0000 (17:37 -0700)
committerBjorn Andersson <bjorn.andersson@linaro.org>
Thu, 7 May 2020 18:04:38 +0000 (11:04 -0700)
In all but the very special case of a system with _only_ glink_rpm,
GLINK is dependent on glink_ssr, so move it to rpmsg and combine it with
qcom_glink_native in the new qcom_glink kernel module.

Acked-by: Chris Lew <clew@codeaurora.org>
Acked-by: Rishabh Bhatnagar <rishabhb@codeaurora.org>
Link: https://lore.kernel.org/r/20200423003736.2027371-4-bjorn.andersson@linaro.org
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
drivers/rpmsg/Kconfig
drivers/rpmsg/Makefile
drivers/rpmsg/qcom_glink_ssr.c [moved from drivers/soc/qcom/glink_ssr.c with 97% similarity]
drivers/soc/qcom/Kconfig
drivers/soc/qcom/Makefile
include/linux/rpmsg/qcom_glink.h

index a9108ff..f967168 100644 (file)
@@ -24,13 +24,13 @@ config RPMSG_MTK_SCP
          remote processors in MediaTek platforms.
          This use IPI and IPC to communicate with remote processors.
 
-config RPMSG_QCOM_GLINK_NATIVE
+config RPMSG_QCOM_GLINK
        tristate
        select RPMSG
 
 config RPMSG_QCOM_GLINK_RPM
        tristate "Qualcomm RPM Glink driver"
-       select RPMSG_QCOM_GLINK_NATIVE
+       select RPMSG_QCOM_GLINK
        depends on HAS_IOMEM
        depends on MAILBOX
        help
@@ -40,7 +40,7 @@ config RPMSG_QCOM_GLINK_RPM
 
 config RPMSG_QCOM_GLINK_SMEM
        tristate "Qualcomm SMEM Glink driver"
-       select RPMSG_QCOM_GLINK_NATIVE
+       select RPMSG_QCOM_GLINK
        depends on MAILBOX
        depends on QCOM_SMEM
        help
index ae92a7f..ffe932e 100644 (file)
@@ -2,8 +2,9 @@
 obj-$(CONFIG_RPMSG)            += rpmsg_core.o
 obj-$(CONFIG_RPMSG_CHAR)       += rpmsg_char.o
 obj-$(CONFIG_RPMSG_MTK_SCP)    += mtk_rpmsg.o
+qcom_glink-objs                        := qcom_glink_native.o qcom_glink_ssr.o
+obj-$(CONFIG_RPMSG_QCOM_GLINK) += qcom_glink.o
 obj-$(CONFIG_RPMSG_QCOM_GLINK_RPM) += qcom_glink_rpm.o
-obj-$(CONFIG_RPMSG_QCOM_GLINK_NATIVE) += qcom_glink_native.o
 obj-$(CONFIG_RPMSG_QCOM_GLINK_SMEM) += qcom_glink_smem.o
 obj-$(CONFIG_RPMSG_QCOM_SMD)   += qcom_smd.o
 obj-$(CONFIG_RPMSG_VIRTIO)     += virtio_rpmsg_bus.o
similarity index 97%
rename from drivers/soc/qcom/glink_ssr.c
rename to drivers/rpmsg/qcom_glink_ssr.c
index 847d79c..dcd1ce6 100644 (file)
@@ -164,7 +164,3 @@ static struct rpmsg_driver qcom_glink_ssr_driver = {
        },
 };
 module_rpmsg_driver(qcom_glink_ssr_driver);
-
-MODULE_ALIAS("rpmsg:glink_ssr");
-MODULE_DESCRIPTION("Qualcomm GLINK SSR notifier");
-MODULE_LICENSE("GPL v2");
index bf42a17..811c912 100644 (file)
@@ -35,15 +35,6 @@ config QCOM_GENI_SE
          driver is also used to manage the common aspects of multiple Serial
          Engines present in the QUP.
 
-config QCOM_GLINK_SSR
-       tristate "Qualcomm Glink SSR driver"
-       depends on RPMSG
-       depends on QCOM_RPROC_COMMON
-       help
-         Say y here to enable GLINK SSR support. The GLINK SSR driver
-         implements the SSR protocol for notifying the remote processor about
-         neighboring subsystems going up or down.
-
 config QCOM_GSBI
        tristate "QCOM General Serial Bus Interface"
        depends on ARCH_QCOM || COMPILE_TEST
index 5d6b83d..e9cacc9 100644 (file)
@@ -3,7 +3,6 @@ CFLAGS_rpmh-rsc.o := -I$(src)
 obj-$(CONFIG_QCOM_AOSS_QMP) += qcom_aoss.o
 obj-$(CONFIG_QCOM_GENI_SE) +=  qcom-geni-se.o
 obj-$(CONFIG_QCOM_COMMAND_DB) += cmd-db.o
-obj-$(CONFIG_QCOM_GLINK_SSR) +=        glink_ssr.o
 obj-$(CONFIG_QCOM_GSBI)        +=      qcom_gsbi.o
 obj-$(CONFIG_QCOM_MDT_LOADER)  += mdt_loader.o
 obj-$(CONFIG_QCOM_OCMEM)       += ocmem.o
index 09daa0a..daded9f 100644 (file)
@@ -12,6 +12,7 @@ struct qcom_glink;
 struct qcom_glink *qcom_glink_smem_register(struct device *parent,
                                            struct device_node *node);
 void qcom_glink_smem_unregister(struct qcom_glink *glink);
+void qcom_glink_ssr_notify(const char *ssr_name);
 
 #else
 
@@ -23,12 +24,6 @@ qcom_glink_smem_register(struct device *parent,
 }
 
 static inline void qcom_glink_smem_unregister(struct qcom_glink *glink) {}
-
-#endif
-
-#if IS_ENABLED(CONFIG_RPMSG_QCOM_GLINK_SSR)
-void qcom_glink_ssr_notify(const char *ssr_name);
-#else
 static inline void qcom_glink_ssr_notify(const char *ssr_name) {}
 #endif