From: Cristian Marussi <cristian.marussi@arm.com>
To: Sudeep Holla <sudeep.holla@arm.com>
Cc: Marek Vasut <marek.vasut+renesas@mailbox.org>,
arm-scmi@vger.kernel.org, Conor Dooley <conor+dt@kernel.org>,
Cristian Marussi <cristian.marussi@arm.com>,
Florian Fainelli <florian.fainelli@broadcom.com>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Rob Herring <robh@kernel.org>,
devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-renesas-soc@vger.kernel.org
Subject: Re: [PATCH v2 2/2] firmware: arm_scmi: Implement arm,poll-transport property
Date: Mon, 12 Jan 2026 12:53:54 +0000 [thread overview]
Message-ID: <aWTu4o4Z59QQOc2O@pluto> (raw)
In-Reply-To: <aWTjs1Y9yoz1k4Ry@bogus>
On Mon, Jan 12, 2026 at 12:06:11PM +0000, Sudeep Holla wrote:
> On Wed, Dec 31, 2025 at 10:29:19PM +0100, Marek Vasut wrote:
> > Implement new property arm,poll-transport, which sets all SCMI operation into
> > poll mode. This is meant to work around uncooperative SCP implementations,
> > which do not generate completion interrupts. This applies to mbox/shmem based
> > implementations.
> >
> > With this property set, such implementations which do not generate interrupts
> > can be interacted with, until they are fixed to generate interrupts properly.
> >
> > Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
> > ---
> > Cc: Conor Dooley <conor+dt@kernel.org>
> > Cc: Cristian Marussi <cristian.marussi@arm.com>
> > Cc: Florian Fainelli <florian.fainelli@broadcom.com>
> > Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
> > Cc: Rob Herring <robh@kernel.org>
> > Cc: Sudeep Holla <sudeep.holla@arm.com>
> > Cc: arm-scmi@vger.kernel.org
> > Cc: devicetree@vger.kernel.org
> > Cc: linux-arm-kernel@lists.infradead.org
> > Cc: linux-renesas-soc@vger.kernel.org
> > ---
> > V2: Drop no IRQ handling from SMC transport and update commit message
> > ---
> > drivers/firmware/arm_scmi/common.h | 4 ++++
> > drivers/firmware/arm_scmi/driver.c | 4 ++++
> > 2 files changed, 8 insertions(+)
> >
> > diff --git a/drivers/firmware/arm_scmi/common.h b/drivers/firmware/arm_scmi/common.h
> > index 7c35c95fddbaf..7c9617d080a02 100644
> > --- a/drivers/firmware/arm_scmi/common.h
> > +++ b/drivers/firmware/arm_scmi/common.h
> > @@ -235,6 +235,9 @@ struct scmi_transport_ops {
> > * to have an execution latency lesser-equal to the threshold
> > * should be considered for atomic mode operation: such
> > * decision is finally left up to the SCMI drivers.
> > + * @no_completion_irq: Flag to indicate that this transport has no completion
> > + * interrupt and has to be polled. This is similar to the
> > + * force_polling below, except this is set via DT property.
> > * @force_polling: Flag to force this whole transport to use SCMI core polling
> > * mechanism instead of completion interrupts even if available.
> > * @sync_cmds_completed_on_ret: Flag to indicate that the transport assures
> > @@ -254,6 +257,7 @@ struct scmi_desc {
> > int max_msg;
> > int max_msg_size;
> > unsigned int atomic_threshold;
> > + bool no_completion_irq;
> > const bool force_polling;
>
> My preference would be to reuse `force_polling` for this. We need to drop
> const but that should be OK. Anyways I would like to know if Cristian thinks
> otherwise for any reasons I might be missing to see.
I would rather keep the 2 things separate since force_polling is more of
a brutal low level debug/test facility and, even though it basically
produces the same result as the new @no_completion_irq, if we remove it
and unify it in a single boolean that can be overriden from the DT we end
up in a situation in which we cannot anymore easily force_polling by
switching the flag in the code since it could be overridden by a
conflicting 'arm,poll-transport' DT setup. (and you have to patch DT
for testing)
So if we have one single underlying boolean (e.g. 'poll') and by any chance
we end up with a DT containing:
arm,poll-transport = false
we cannot anymore override the condition by forcing in the code
poll = true,
since it would be switfly overridden by the DT prop.
Also semantically force_polling express much more the situation.
Anyway...I may be overthinking or missing something.
Cheers,
Cristian
next prev parent reply other threads:[~2026-01-12 12:54 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-31 21:29 [PATCH v2 1/2] dt-bindings: firmware: arm,scmi: Document arm,poll-transport property Marek Vasut
2025-12-31 21:29 ` [PATCH v2 2/2] firmware: arm_scmi: Implement " Marek Vasut
2026-01-12 12:06 ` Sudeep Holla
2026-01-12 12:53 ` Cristian Marussi [this message]
2026-01-12 15:58 ` Sudeep Holla
2026-01-02 11:39 ` [PATCH v2 1/2] dt-bindings: firmware: arm,scmi: Document " Krzysztof Kozlowski
2026-01-12 16:02 ` Sudeep Holla
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aWTu4o4Z59QQOc2O@pluto \
--to=cristian.marussi@arm.com \
--cc=arm-scmi@vger.kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=florian.fainelli@broadcom.com \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-renesas-soc@vger.kernel.org \
--cc=marek.vasut+renesas@mailbox.org \
--cc=robh@kernel.org \
--cc=sudeep.holla@arm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.