From: Douglas Anderson <dianders@chromium.org>
To: Jassi Brar <jassisinghbrar@gmail.com>
Cc: "Joonwon Kang" <joonwonkang@google.com>,
"Subhash Jadavani" <sjadavani@google.com>,
"Peter Griffin" <peter.griffin@linaro.org>,
"Lucas Wei" <lucaswei@google.com>,
"André Draszik" <andre.draszik@linaro.org>,
"Tudor Ambarus" <tudor.ambarus@linaro.org>,
"Krzysztof Kozlowski" <krzk@kernel.org>,
"Brian Norris" <briannorris@chromium.org>,
"Douglas Anderson" <dianders@chromium.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Gustavo A. R. Silva" <gustavoars@kernel.org>,
"Kees Cook" <kees@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Rob Herring" <robh@kernel.org>,
devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-hardening@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-samsung-soc@vger.kernel.org
Subject: [PATCH v2 0/4] mailbox: Improve the mbox core then introduce the goog-mba driver
Date: Fri, 23 Oct 2026 16:52:17 -0700 [thread overview]
Message-ID: <20261023235408.3063350-1-dianders@chromium.org> (raw)
The goal of this series is to land support for the goog-mba (MailBox
Array) IP block that's present in Pixel 10 phones.
As can be seen in the device-tree bindings for the goog-mba IP block,
the mailbox IP block in Pixel 10 phones is fairly sophisticated.
Notably:
* It has hardware features that support queuing, meaning that more
than one mailbox message can be pending at a time.
* The "channels" in a given mailbox array aren't homogeneous. Each
"channel" in the mailbox array can have a different amount of memory
for messages. Really, the "channels" in a mailbox are considered to
be full single-channel mailboxes and a grouping of mailboxes is
considered a "mailbox array" (hence the IP block being named "mba")
In order to cleanly support `goog-mba`, improvements are made to the
mailbox core to allow `#mbox-cells = <0>` without a custom xlate and
to allow mailbox drivers that have more than one sub-node (`fwnode`).
For TX queue mode, as suggested in v1 review, `goog-mba` exposes each
hardware queue slot as a virtual mailbox channel rather than adding
queueing support to the mailbox core.
This is a fairly big rewrite from the downstream MBA driver shipping
on Pixel 10 phones, which jumped through some awkward hoops because of
the way it got queuing to work. It has been tested on a Pixel 10 Pro
XL (Mustang) together with work-in-progress Laguna CPM, pinctrl, PCIe,
and RTC drivers.
Link to previous versions:
v1: https://lore.kernel.org/r/20260714222338.2965707-1-dianders@chromium.org/
Changes in v2:
- Rename binding file to google,lga-mailbox-array.yaml.
- Drop generic "google,mailbox-array" fallback compatible.
- Add "google,tx-payload-words" property for queue-mode TX message size.
- Remove unused labels in DT example.
- Drop "dt-bindings: mailbox: Don't require #mbox-cells to be 1"
(handled by deleting old mailbox.txt and updating dt-schema).
- Drop "mailbox: Simplify circular queue math with mod arithmetic" and
"mailbox: Add support for mailbox controllers that can queue".
- Expose a mailbox channel per TX queue slot instead of adding
`has_queue` to the mailbox core.
- For queue mode, read `google,tx-payload-words` from DT instead of
detecting TX payload size on the first transfer.
- Match "google,lga-mailbox-array" instead of "google,mailbox-array".
- Move MAINTAINERS entries under GOOGLE TENSOR SoC SUPPORT.
- Use guard(spinlock_irqsave) and scoped_guard(spinlock).
Douglas Anderson (4):
mailbox: Allow #mbox-cells = <0> without specifying a custom xlate
mailbox: Find a matching mailbox by fwnode rather than device
dt-bindings: mailbox: goog-mba: Add goog-mba mailbox bindings
mailbox: goog-mba: Introduce the goog-mba mailbox driver
.../mailbox/google,lga-mailbox-array.yaml | 226 +++++++
MAINTAINERS | 3 +
drivers/mailbox/Kconfig | 8 +
drivers/mailbox/Makefile | 2 +
drivers/mailbox/goog-mba-priv.h | 130 ++++
drivers/mailbox/goog-mba-trace.h | 183 ++++++
drivers/mailbox/goog-mba.c | 621 ++++++++++++++++++
drivers/mailbox/mailbox.c | 16 +-
include/linux/mailbox/goog-mba-message.h | 38 ++
include/linux/mailbox_controller.h | 4 +
10 files changed, 1229 insertions(+), 2 deletions(-)
create mode 100644 Documentation/devicetree/bindings/mailbox/google,lga-mailbox-array.yaml
create mode 100644 drivers/mailbox/goog-mba-priv.h
create mode 100644 drivers/mailbox/goog-mba-trace.h
create mode 100644 drivers/mailbox/goog-mba.c
create mode 100644 include/linux/mailbox/goog-mba-message.h
--
2.56.0.257.gf7497c7d27-goog
next reply other threads:[~2026-10-23 23:54 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-23 23:52 Douglas Anderson [this message]
2026-10-23 23:52 ` [PATCH v2 1/4] mailbox: Allow #mbox-cells = <0> without specifying a custom xlate Douglas Anderson
2026-10-23 23:52 ` [PATCH v2 2/4] mailbox: Find a matching mailbox by fwnode rather than device Douglas Anderson
2026-10-23 23:52 ` [PATCH v2 3/4] dt-bindings: mailbox: goog-mba: Add goog-mba mailbox bindings Douglas Anderson
2026-10-23 23:52 ` [PATCH v2 4/4] mailbox: goog-mba: Introduce the goog-mba mailbox driver Douglas Anderson
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=20261023235408.3063350-1-dianders@chromium.org \
--to=dianders@chromium.org \
--cc=andre.draszik@linaro.org \
--cc=briannorris@chromium.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=gustavoars@kernel.org \
--cc=jassisinghbrar@gmail.com \
--cc=joonwonkang@google.com \
--cc=kees@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=krzk@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-hardening@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=lucaswei@google.com \
--cc=peter.griffin@linaro.org \
--cc=robh@kernel.org \
--cc=sjadavani@google.com \
--cc=tudor.ambarus@linaro.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®