From: Karunika Choo <karunika.choo@arm.com>
To: dri-devel@lists.freedesktop.org
Cc: nd@arm.com, Boris Brezillon <boris.brezillon@collabora.com>,
Steven Price <steven.price@arm.com>,
Liviu Dudau <liviu.dudau@arm.com>,
linux-kernel@vger.kernel.org
Subject: [PATCH v1 00/27] drm/panthor: Add Mali v15 virtualization support
Date: Tue, 22 Sep 2026 21:44:54 +0100 [thread overview]
Message-ID: <20260922204535.2850094-1-karunika.choo@arm.com> (raw)
This series adds HW-assisted para-virtualization support for Mali v15
GPUs. v15 GPUs provide 16 register sets for job submission known as
access windows (AWs). The GPU hardware itself is then time-sliced across
each requesting access window.
Patches 1-6 make panthor less dependent on fixed register layouts by
caching decoded GPU_ID fields and moving register offsets into the HW
description.
Patches 7-9 update dt-bindings and add basic support for v15 GPUs.
Patches 10-11 introduce the GPU-wide configuration driver.
Patches 12-21 implement the time-slicing driver with a simple
interrupt-driven round robin scheduler.
Patches 22-27 update panthor to be time-slice aware as well as
being resilient against the GPU being yielded at any time.
v1:
- Rebased on drm-misc-next.
- Added device-tree bindings for the GPU and virtualization components.
- Improved GPU identification and register handling.
- Updated AM messaging to protocol v2.
- Improved GPU scheduling and recovery from timeouts and failed
commands.
- Added access-window assignments through device tree and earlier GPU
release when another window is waiting.
- Improved power management, driver setup and cleanup.
- Fixed races involving GPU resets, loss of access and late grants.
- Kept frequency reporting available without devfreq and documented
scheduler timeout settings.
- Link to RFC: https://lore.kernel.org/all/20260528150546.3168527-1-karunika.choo@arm.com/
Kind regards,
Karunika Choo
Karunika Choo (27):
drm/panthor: Ignore -EOPNOTSUPP for shader-present nvmem lookup
drm/panthor: Move register access helpers out of panthor_device.h
drm/panthor: Parse and store GPU_ID fields
drm/panthor: Add 64-bit GPU_ID decoding for v15 GPUs
drm/panthor: Move register base offsets to the HW description
drm/panthor: Derive MMU AS register addresses from base and stride
dt-bindings: gpu: mali-valhall-csf: Add Mali Gen5 AM compatible
drm/panthor: Add Mali v15 hardware support
drm/panthor: Skip devfreq when no OPP table is present
dt-bindings: gpu: panthor: Document panthor-system bindings
drm/panthor: Add AM_SYSTEM platform driver
dt-bindings: gpu: panthor: Document panthor-arbitration bindings
drm/panthor: Add AM_PARTITION_CONTROL support
drm/panthor: Add AM message helpers
drm/panthor: Add AM_RESOURCE_GROUP support
drm/panthor: Add arbitration scheduler
drm/panthor: Route arbitration events
dt-bindings: gpu: panthor: Document AW assignment DT property
drm/panthor: Add AW assignment tracking
drm/panthor: Handle partition control INVALID_COMMAND interrupt
drm/panthor: Request AW to yield GPU access on idle
drm/panthor: Add access-window support
drm/panthor: Synchronize HW component PM transitions
drm/panthor: Route HW component PM through access windows
drm/panthor: Tolerate access-window loss during HW waits
drm/panthor: Prevent missed post-yield cleanup due to reset
drm/panthor: Release GPU access immediately for out-of-band grants
.../testing/sysfs-driver-panthor-arbitration | 18 +
.../gpu/arm,mali-gen5-am-arbitration.yaml | 135 ++++
.../bindings/gpu/arm,mali-gen5-am-system.yaml | 76 ++
.../bindings/gpu/arm,mali-valhall-csf.yaml | 26 +-
MAINTAINERS | 2 +
drivers/gpu/drm/panthor/Kconfig | 20 +
drivers/gpu/drm/panthor/Makefile | 3 +
drivers/gpu/drm/panthor/arbitration/Makefile | 15 +
.../panthor/arbitration/panthor_arbitration.h | 81 ++
.../arbitration/panthor_arbitration_drv.c | 451 +++++++++++
.../arbitration/panthor_arbitration_sched.c | 755 ++++++++++++++++++
.../arbitration/panthor_arbitration_sched.h | 46 ++
.../arbitration/panthor_partition_control.c | 428 ++++++++++
.../arbitration/panthor_partition_control.h | 29 +
.../arbitration/panthor_resource_group.c | 323 ++++++++
.../arbitration/panthor_resource_group.h | 22 +
drivers/gpu/drm/panthor/panthor_am_msg.h | 159 ++++
drivers/gpu/drm/panthor/panthor_aw.c | 628 +++++++++++++++
drivers/gpu/drm/panthor/panthor_aw.h | 53 ++
drivers/gpu/drm/panthor/panthor_devfreq.c | 31 +-
drivers/gpu/drm/panthor/panthor_device.c | 82 +-
drivers/gpu/drm/panthor/panthor_device.h | 131 ++-
drivers/gpu/drm/panthor/panthor_device_io.h | 83 ++
drivers/gpu/drm/panthor/panthor_drv.c | 1 +
drivers/gpu/drm/panthor/panthor_fw.c | 12 +-
drivers/gpu/drm/panthor/panthor_fw_regs.h | 2 -
drivers/gpu/drm/panthor/panthor_gpu.c | 13 +-
.../drm/panthor/panthor_gpu_discover_regs.h | 44 +
drivers/gpu/drm/panthor/panthor_gpu_regs.h | 3 +-
drivers/gpu/drm/panthor/panthor_heap.c | 3 +-
drivers/gpu/drm/panthor/panthor_hw.c | 193 ++++-
drivers/gpu/drm/panthor/panthor_hw.h | 56 +-
drivers/gpu/drm/panthor/panthor_mmu.c | 45 +-
drivers/gpu/drm/panthor/panthor_mmu_regs.h | 23 +-
drivers/gpu/drm/panthor/panthor_pwr.c | 29 +-
drivers/gpu/drm/panthor/panthor_pwr_regs.h | 2 -
drivers/gpu/drm/panthor/panthor_sched.c | 5 +
drivers/gpu/drm/panthor/system/Makefile | 13 +
.../drm/panthor/system/panthor_system_drv.c | 304 +++++++
include/uapi/drm/panthor_drm.h | 23 +-
40 files changed, 4193 insertions(+), 175 deletions(-)
create mode 100644 Documentation/ABI/testing/sysfs-driver-panthor-arbitration
create mode 100644 Documentation/devicetree/bindings/gpu/arm,mali-gen5-am-arbitration.yaml
create mode 100644 Documentation/devicetree/bindings/gpu/arm,mali-gen5-am-system.yaml
create mode 100644 drivers/gpu/drm/panthor/arbitration/Makefile
create mode 100644 drivers/gpu/drm/panthor/arbitration/panthor_arbitration.h
create mode 100644 drivers/gpu/drm/panthor/arbitration/panthor_arbitration_drv.c
create mode 100644 drivers/gpu/drm/panthor/arbitration/panthor_arbitration_sched.c
create mode 100644 drivers/gpu/drm/panthor/arbitration/panthor_arbitration_sched.h
create mode 100644 drivers/gpu/drm/panthor/arbitration/panthor_partition_control.c
create mode 100644 drivers/gpu/drm/panthor/arbitration/panthor_partition_control.h
create mode 100644 drivers/gpu/drm/panthor/arbitration/panthor_resource_group.c
create mode 100644 drivers/gpu/drm/panthor/arbitration/panthor_resource_group.h
create mode 100644 drivers/gpu/drm/panthor/panthor_am_msg.h
create mode 100644 drivers/gpu/drm/panthor/panthor_aw.c
create mode 100644 drivers/gpu/drm/panthor/panthor_aw.h
create mode 100644 drivers/gpu/drm/panthor/panthor_device_io.h
create mode 100644 drivers/gpu/drm/panthor/panthor_gpu_discover_regs.h
create mode 100644 drivers/gpu/drm/panthor/system/Makefile
create mode 100644 drivers/gpu/drm/panthor/system/panthor_system_drv.c
--
2.43.0
next reply other threads:[~2026-09-22 20:46 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-22 20:44 Karunika Choo [this message]
2026-09-22 20:44 ` [PATCH v1 01/27] drm/panthor: Ignore -EOPNOTSUPP for shader-present nvmem lookup Karunika Choo
2026-09-22 20:44 ` [PATCH v1 02/27] drm/panthor: Move register access helpers out of panthor_device.h Karunika Choo
2026-09-22 20:44 ` [PATCH v1 03/27] drm/panthor: Parse and store GPU_ID fields Karunika Choo
2026-09-22 20:44 ` [PATCH v1 04/27] drm/panthor: Add 64-bit GPU_ID decoding for v15 GPUs Karunika Choo
2026-09-22 23:23 ` Deborah Brouwer
2026-09-22 20:44 ` [PATCH v1 05/27] drm/panthor: Move register base offsets to the HW description Karunika Choo
2026-09-22 20:45 ` [PATCH v1 06/27] drm/panthor: Derive MMU AS register addresses from base and stride Karunika Choo
2026-09-22 20:45 ` [PATCH v1 07/27] dt-bindings: gpu: mali-valhall-csf: Add Mali Gen5 AM compatible Karunika Choo
2026-09-28 10:02 ` Krzysztof Kozlowski
2026-09-22 20:45 ` [PATCH v1 08/27] drm/panthor: Add Mali v15 hardware support Karunika Choo
2026-09-22 20:45 ` [PATCH v1 09/27] drm/panthor: Skip devfreq when no OPP table is present Karunika Choo
2026-09-22 20:45 ` [PATCH v1 10/27] dt-bindings: gpu: panthor: Document panthor-system bindings Karunika Choo
2026-09-28 10:05 ` Krzysztof Kozlowski
2026-09-22 20:45 ` [PATCH v1 11/27] drm/panthor: Add AM_SYSTEM platform driver Karunika Choo
2026-09-22 20:45 ` [PATCH v1 12/27] dt-bindings: gpu: panthor: Document panthor-arbitration bindings Karunika Choo
2026-09-28 10:06 ` Krzysztof Kozlowski
2026-09-22 20:45 ` [PATCH v1 13/27] drm/panthor: Add AM_PARTITION_CONTROL support Karunika Choo
2026-09-22 20:45 ` [PATCH v1 14/27] drm/panthor: Add AM message helpers Karunika Choo
2026-09-22 20:45 ` [PATCH v1 15/27] drm/panthor: Add AM_RESOURCE_GROUP support Karunika Choo
2026-09-22 20:45 ` [PATCH v1 16/27] drm/panthor: Add arbitration scheduler Karunika Choo
2026-09-22 20:45 ` [PATCH v1 17/27] drm/panthor: Route arbitration events Karunika Choo
2026-09-22 20:45 ` [PATCH v1 18/27] dt-bindings: gpu: panthor: Document AW assignment DT property Karunika Choo
2026-09-28 10:06 ` Krzysztof Kozlowski
2026-09-22 20:45 ` [PATCH v1 19/27] drm/panthor: Add AW assignment tracking Karunika Choo
2026-09-22 20:45 ` [PATCH v1 20/27] drm/panthor: Handle partition control INVALID_COMMAND interrupt Karunika Choo
2026-09-22 20:45 ` [PATCH v1 21/27] drm/panthor: Request AW to yield GPU access on idle Karunika Choo
2026-09-22 20:45 ` [PATCH v1 22/27] drm/panthor: Add access-window support Karunika Choo
2026-09-22 20:45 ` [PATCH v1 23/27] drm/panthor: Synchronize HW component PM transitions Karunika Choo
2026-09-22 20:45 ` [PATCH v1 24/27] drm/panthor: Route HW component PM through access windows Karunika Choo
2026-09-22 20:45 ` [PATCH v1 25/27] drm/panthor: Tolerate access-window loss during HW waits Karunika Choo
2026-09-22 20:45 ` [PATCH v1 26/27] drm/panthor: Prevent missed post-yield cleanup due to reset Karunika Choo
2026-09-22 20:45 ` [PATCH v1 27/27] drm/panthor: Release GPU access immediately for out-of-band grants Karunika Choo
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=20260922204535.2850094-1-karunika.choo@arm.com \
--to=karunika.choo@arm.com \
--cc=boris.brezillon@collabora.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=linux-kernel@vger.kernel.org \
--cc=liviu.dudau@arm.com \
--cc=nd@arm.com \
--cc=steven.price@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 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®