summaryrefslogtreecommitdiffstats
path: root/drivers/firmware/arm_scmi/base.c
diff options
context:
space:
mode:
authorCristian Marussi <cristian.marussi@arm.com>2021-03-16 12:48:26 +0000
committerSudeep Holla <sudeep.holla@arm.com>2021-03-29 09:40:47 +0100
commit48dc16e2e52ca386d97435f257ef8a754becb0b8 (patch)
tree2109a6f4be42bba8bb25e2b14cc752e58cb88390 /drivers/firmware/arm_scmi/base.c
parent908a4f778dc7cc0087a862bf43c8bba8821b610c (diff)
downloadlinux-stable-48dc16e2e52ca386d97435f257ef8a754becb0b8.tar.gz
linux-stable-48dc16e2e52ca386d97435f257ef8a754becb0b8.tar.bz2
linux-stable-48dc16e2e52ca386d97435f257ef8a754becb0b8.zip
firmware: arm_scmi: Extend protocol registration interfaces
Extend common protocol registration routines and provide some new generic protocols get/put helpers that can track protocols usage and automatically perform the proper initialization and de-initialization on demand when required. Convert all standard protocols to use this new registration scheme while keeping them all still using the usual initialization logic bound to SCMI devices probing. Link: https://lore.kernel.org/r/20210316124903.35011-2-cristian.marussi@arm.com Tested-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: Cristian Marussi <cristian.marussi@arm.com> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
Diffstat (limited to 'drivers/firmware/arm_scmi/base.c')
-rw-r--r--drivers/firmware/arm_scmi/base.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/firmware/arm_scmi/base.c b/drivers/firmware/arm_scmi/base.c
index 017e5d8bd869..b0e16bea614a 100644
--- a/drivers/firmware/arm_scmi/base.c
+++ b/drivers/firmware/arm_scmi/base.c
@@ -2,7 +2,7 @@
/*
* System Control and Management Interface (SCMI) Base Protocol
*
- * Copyright (C) 2018 ARM Ltd.
+ * Copyright (C) 2018-2021 ARM Ltd.
*/
#define pr_fmt(fmt) "SCMI Notifications BASE - " fmt
@@ -365,3 +365,11 @@ int scmi_base_protocol_init(struct scmi_handle *h)
return 0;
}
+
+static const struct scmi_protocol scmi_base = {
+ .id = SCMI_PROTOCOL_BASE,
+ .init = &scmi_base_protocol_init,
+ .ops = NULL,
+};
+
+DEFINE_SCMI_PROTOCOL_REGISTER_UNREGISTER(base, scmi_base)