[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20220627123038.1427067-6-cristian.marussi@arm.com>
Date: Mon, 27 Jun 2022 13:30:34 +0100
From: Cristian Marussi <cristian.marussi@....com>
To: linux-kernel@...r.kernel.org, linux-arm-kernel@...ts.infradead.org
Cc: sudeep.holla@....com, james.quinlan@...adcom.com,
Jonathan.Cameron@...wei.com, f.fainelli@...il.com,
etienne.carriere@...aro.org, vincent.guittot@...aro.org,
daniel.lezcano@...aro.org, tarek.el-sherbiny@....com,
adrian.slatineanu@....com, souvik.chakravarty@....com,
wleavitt@...vell.com, wbartczak@...vell.com,
Cristian Marussi <cristian.marussi@....com>
Subject: [PATCH v3 5/9] firmware: arm_scmi: Make use of FastChannels configurable
Add a Kernel configuration entry used to optionally disable, globally, the
usage of SCMI FastChannels even on platforms where they are available.
Make such option default-no to preserve the original SCMI system behaviour
of using any available FC.
Signed-off-by: Cristian Marussi <cristian.marussi@....com>
---
v2 --> v3
- fixed wording in Kconfig
- reverted Kconfig logic _USE_ -> _AVOID_
---
drivers/firmware/arm_scmi/Kconfig | 13 +++++++++++++
drivers/firmware/arm_scmi/driver.c | 6 ++++++
2 files changed, 19 insertions(+)
diff --git a/drivers/firmware/arm_scmi/Kconfig b/drivers/firmware/arm_scmi/Kconfig
index 1e7b7fec97d9..3fb34db01014 100644
--- a/drivers/firmware/arm_scmi/Kconfig
+++ b/drivers/firmware/arm_scmi/Kconfig
@@ -42,6 +42,19 @@ config ARM_SCMI_HAVE_MSG
This declares whether a message passing based transport for SCMI is
available.
+config ARM_SCMI_AVOID_FASTCHANNELS
+ bool "Avoid using SCMI FastChannels even when available"
+ help
+ Avoid using SCMI FastChannels even if advertised as available by
+ the platform.
+
+ On systems where the SCMI platform advertises the availability of
+ FastChannels, supported SCMI commands can be issued triggering a
+ one-way FastChannel request, much more quickly than using a
+ regular SCMI message transfer.
+ When set to Y forces the OSPM to use instead regular SCMI message
+ transfers even if FastChannels are available. If unsure say N.
+
config ARM_SCMI_TRANSPORT_MAILBOX
bool "SCMI transport based on Mailbox"
depends on MAILBOX
diff --git a/drivers/firmware/arm_scmi/driver.c b/drivers/firmware/arm_scmi/driver.c
index 00b7f2aff4ec..76dc82ba04b3 100644
--- a/drivers/firmware/arm_scmi/driver.c
+++ b/drivers/firmware/arm_scmi/driver.c
@@ -1298,6 +1298,12 @@ scmi_common_fastchannel_init(const struct scmi_protocol_handle *ph,
struct scmi_msg_resp_desc_fc *resp;
const struct scmi_protocol_instance *pi = ph_to_pi(ph);
+ if (IS_ENABLED(CONFIG_ARM_SCMI_AVOID_FASTCHANNELS)) {
+ dev_warn_once(ph->dev,
+ "FastChannels usage disabled in Kconfig.\n");
+ return;
+ }
+
if (!p_addr) {
ret = -EINVAL;
goto err_out;
--
2.32.0
Powered by blists - more mailing lists