rpmsg: glink: Integrate glink_ssr in qcom_glink

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>
This commit is contained in:
Bjorn Andersson 2020-04-22 17:37:35 -07:00
parent 5d1f2e3c80
commit 93bc3feee8
6 changed files with 6 additions and 24 deletions

View File

@ -24,13 +24,13 @@ config RPMSG_MTK_SCP
remote processors in MediaTek platforms. remote processors in MediaTek platforms.
This use IPI and IPC to communicate with remote processors. This use IPI and IPC to communicate with remote processors.
config RPMSG_QCOM_GLINK_NATIVE config RPMSG_QCOM_GLINK
tristate tristate
select RPMSG select RPMSG
config RPMSG_QCOM_GLINK_RPM config RPMSG_QCOM_GLINK_RPM
tristate "Qualcomm RPM Glink driver" tristate "Qualcomm RPM Glink driver"
select RPMSG_QCOM_GLINK_NATIVE select RPMSG_QCOM_GLINK
depends on HAS_IOMEM depends on HAS_IOMEM
depends on MAILBOX depends on MAILBOX
help help
@ -40,7 +40,7 @@ config RPMSG_QCOM_GLINK_RPM
config RPMSG_QCOM_GLINK_SMEM config RPMSG_QCOM_GLINK_SMEM
tristate "Qualcomm SMEM Glink driver" tristate "Qualcomm SMEM Glink driver"
select RPMSG_QCOM_GLINK_NATIVE select RPMSG_QCOM_GLINK
depends on MAILBOX depends on MAILBOX
depends on QCOM_SMEM depends on QCOM_SMEM
help help

View File

@ -2,8 +2,9 @@
obj-$(CONFIG_RPMSG) += rpmsg_core.o obj-$(CONFIG_RPMSG) += rpmsg_core.o
obj-$(CONFIG_RPMSG_CHAR) += rpmsg_char.o obj-$(CONFIG_RPMSG_CHAR) += rpmsg_char.o
obj-$(CONFIG_RPMSG_MTK_SCP) += mtk_rpmsg.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_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_GLINK_SMEM) += qcom_glink_smem.o
obj-$(CONFIG_RPMSG_QCOM_SMD) += qcom_smd.o obj-$(CONFIG_RPMSG_QCOM_SMD) += qcom_smd.o
obj-$(CONFIG_RPMSG_VIRTIO) += virtio_rpmsg_bus.o obj-$(CONFIG_RPMSG_VIRTIO) += virtio_rpmsg_bus.o

View File

@ -164,7 +164,3 @@ static struct rpmsg_driver qcom_glink_ssr_driver = {
}, },
}; };
module_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");

View File

@ -35,15 +35,6 @@ config QCOM_GENI_SE
driver is also used to manage the common aspects of multiple Serial driver is also used to manage the common aspects of multiple Serial
Engines present in the QUP. 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 config QCOM_GSBI
tristate "QCOM General Serial Bus Interface" tristate "QCOM General Serial Bus Interface"
depends on ARCH_QCOM || COMPILE_TEST depends on ARCH_QCOM || COMPILE_TEST

View File

@ -3,7 +3,6 @@ CFLAGS_rpmh-rsc.o := -I$(src)
obj-$(CONFIG_QCOM_AOSS_QMP) += qcom_aoss.o obj-$(CONFIG_QCOM_AOSS_QMP) += qcom_aoss.o
obj-$(CONFIG_QCOM_GENI_SE) += qcom-geni-se.o obj-$(CONFIG_QCOM_GENI_SE) += qcom-geni-se.o
obj-$(CONFIG_QCOM_COMMAND_DB) += cmd-db.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_GSBI) += qcom_gsbi.o
obj-$(CONFIG_QCOM_MDT_LOADER) += mdt_loader.o obj-$(CONFIG_QCOM_MDT_LOADER) += mdt_loader.o
obj-$(CONFIG_QCOM_OCMEM) += ocmem.o obj-$(CONFIG_QCOM_OCMEM) += ocmem.o

View File

@ -12,6 +12,7 @@ struct qcom_glink;
struct qcom_glink *qcom_glink_smem_register(struct device *parent, struct qcom_glink *qcom_glink_smem_register(struct device *parent,
struct device_node *node); struct device_node *node);
void qcom_glink_smem_unregister(struct qcom_glink *glink); void qcom_glink_smem_unregister(struct qcom_glink *glink);
void qcom_glink_ssr_notify(const char *ssr_name);
#else #else
@ -23,12 +24,6 @@ qcom_glink_smem_register(struct device *parent,
} }
static inline void qcom_glink_smem_unregister(struct qcom_glink *glink) {} 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) {} static inline void qcom_glink_ssr_notify(const char *ssr_name) {}
#endif #endif