[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID:
<PAXPR04MB845905073FFB3B0967C7263F887E2@PAXPR04MB8459.eurprd04.prod.outlook.com>
Date: Tue, 8 Oct 2024 02:14:18 +0000
From: Peng Fan <peng.fan@....com>
To: Florian Fainelli <florian.fainelli@...adcom.com>,
"linux-arm-kernel@...ts.infreadead.org"
<linux-arm-kernel@...ts.infreadead.org>
CC: Rob Herring <robh@...nel.org>, Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>, Sudeep Holla <sudeep.holla@....com>,
Cristian Marussi <cristian.marussi@....com>, "open list:OPEN FIRMWARE AND
FLATTENED DEVICE TREE BINDINGS" <devicetree@...r.kernel.org>, open list
<linux-kernel@...r.kernel.org>, "open list:SYSTEM CONTROL & POWER/MANAGEMENT
INTERFACE" <arm-scmi@...r.kernel.org>, "moderated list:SYSTEM CONTROL &
POWER/MANAGEMENT INTERFACE" <linux-arm-kernel@...ts.infradead.org>,
"justin.chen@...adcom.com" <justin.chen@...adcom.com>, "opendmb@...il.com"
<opendmb@...il.com>, "kapil.hali@...adcom.com" <kapil.hali@...adcom.com>,
"bcm-kernel-feedback-list@...adcom.com"
<bcm-kernel-feedback-list@...adcom.com>, Arnd Bergmann <arnd@...db.de>
Subject: RE: [PATCH v2] firmware: arm_scmi: Give SMC transport precedence over
mailbox
> Subject: [PATCH v2] firmware: arm_scmi: Give SMC transport
> precedence over mailbox
>
> Broadcom STB platforms have for historical reasons included both
> "arm,scmi-smc" and "arm,scmi" in their SCMI Device Tree node
> compatible string, in that order.
If compatible = "arm,scmi-smc", "arm,scmi", smc driver should be used.
or I missed something?
>
> After the commit cited in the Fixes tag and with a kernel configuration
> that enables both the SMC and the Mailbox transports, we would
> probe the mailbox transport, but fail to complete since we would not
> have a mailbox driver available. With each SCMI transport being a
> platform driver with its own set of compatible strings to match, rather
> than an unique platform driver entry point, we no longer match from
> most specific to least specific. There is also no simple way for the
> mailbox driver to return -ENODEV and let another platform driver
> attempt probing. This leads to a platform with no SCMI provider,
> therefore all drivers depending upon SCMI resources are put on
> deferred probe forever.
>
> By keeping the SMC transport objects linked first, we can let the
> platform driver match the compatible string and probe successfully
> with no adverse effects on platforms using the mailbox transport.
>
> Fixes: b53515fa177c ("firmware: arm_scmi: Make MBOX transport a
> standalone driver")
> Signed-off-by: Florian Fainelli <florian.fainelli@...adcom.com>
> ---
> Changes in v2:
>
> - removed downstream Change-Id
> - s/SCMI/SMC in the second paragraph
> - added details about what changed and how that affects the probing
>
> drivers/firmware/arm_scmi/transports/Makefile | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/firmware/arm_scmi/transports/Makefile
> b/drivers/firmware/arm_scmi/transports/Makefile
> index 362a406f08e6..3ba3d3bee151 100644
> --- a/drivers/firmware/arm_scmi/transports/Makefile
> +++ b/drivers/firmware/arm_scmi/transports/Makefile
> @@ -1,8 +1,10 @@
> # SPDX-License-Identifier: GPL-2.0-only -scmi_transport_mailbox-
> objs := mailbox.o
> -obj-$(CONFIG_ARM_SCMI_TRANSPORT_MAILBOX) +=
> scmi_transport_mailbox.o
> +# Keep before scmi_transport_mailbox.o to allow precedence # while
> +matching the compatible.
> scmi_transport_smc-objs := smc.o
> obj-$(CONFIG_ARM_SCMI_TRANSPORT_SMC) +=
> scmi_transport_smc.o
> +scmi_transport_mailbox-objs := mailbox.o
> +obj-$(CONFIG_ARM_SCMI_TRANSPORT_MAILBOX) +=
This seems more like a hack.
Regards,
Peng.
> scmi_transport_mailbox.o
> scmi_transport_optee-objs := optee.o
> obj-$(CONFIG_ARM_SCMI_TRANSPORT_OPTEE) +=
> scmi_transport_optee.o scmi_transport_virtio-objs := virtio.o
> --
> 2.34.1
>
Powered by blists - more mailing lists