This series adds initial support for Mali v15 AM GPUs and the HW-assisted virtualization blocks around them.
The first patches make the core panthor code less dependent on fixed register layouts by caching decoded GPU_ID fields and moving register base offsets into the HW description. Mali v15 support is then added on top, including 64-bit GPU_ID decoding and optional devfreq handling for systems where frequency control is owned by AM_GOVERNOR. The rest of the series introduces the AM_SYSTEM, AM_PARTITION_CONTROL, AM_RESOURCE_GROUP, arbitration scheduler and access-window pieces needed to coordinate GPU ownership between the arbiter and VM-side panthor instances. Finally, HW component PM is routed through access windows and waits are taught to tolerate loss of the access window. This series has a soft dependency on firmware scheduling support that will be added later to handle YIELD_NOW interrupts. The resulting support is intentionally minimal, but provides the driver-side plumbing needed for Mali v15 AM systems. Kind regards, Karunika Choo Karunika Choo (18): 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 drm/panthor: Add Mali v15 hardware support drm/panthor: Skip devfreq when no OPP table is present drm/panthor: Add basic AM_SYSTEM support 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 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 drivers/gpu/drm/panthor/Kconfig | 14 + drivers/gpu/drm/panthor/Makefile | 3 + drivers/gpu/drm/panthor/arbitration/Makefile | 17 + .../panthor/arbitration/panthor_arbitration.h | 45 ++ .../arbitration/panthor_arbitration_drv.c | 199 +++++ .../arbitration/panthor_arbitration_sched.c | 692 ++++++++++++++++++ .../arbitration/panthor_arbitration_sched.h | 25 + .../arbitration/panthor_partition_control.c | 390 ++++++++++ .../arbitration/panthor_partition_control.h | 27 + .../arbitration/panthor_resource_group.c | 288 ++++++++ .../arbitration/panthor_resource_group.h | 20 + drivers/gpu/drm/panthor/panthor_am_msg.h | 157 ++++ drivers/gpu/drm/panthor/panthor_aw.c | 576 +++++++++++++++ drivers/gpu/drm/panthor/panthor_aw.h | 46 ++ drivers/gpu/drm/panthor/panthor_devfreq.c | 13 +- drivers/gpu/drm/panthor/panthor_device.c | 69 +- drivers/gpu/drm/panthor/panthor_device.h | 134 ++-- drivers/gpu/drm/panthor/panthor_device_io.h | 81 ++ drivers/gpu/drm/panthor/panthor_drv.c | 1 + drivers/gpu/drm/panthor/panthor_fw.c | 8 +- drivers/gpu/drm/panthor/panthor_fw_regs.h | 2 - drivers/gpu/drm/panthor/panthor_gpu.c | 14 +- .../drm/panthor/panthor_gpu_discover_regs.h | 42 ++ drivers/gpu/drm/panthor/panthor_gpu_regs.h | 2 - drivers/gpu/drm/panthor/panthor_heap.c | 3 +- drivers/gpu/drm/panthor/panthor_hw.c | 163 ++++- drivers/gpu/drm/panthor/panthor_hw.h | 45 +- drivers/gpu/drm/panthor/panthor_mmu.c | 36 +- drivers/gpu/drm/panthor/panthor_mmu_regs.h | 23 +- drivers/gpu/drm/panthor/panthor_pwr.c | 32 +- drivers/gpu/drm/panthor/panthor_pwr_regs.h | 3 - drivers/gpu/drm/panthor/panthor_sched.c | 9 +- drivers/gpu/drm/panthor/system/Makefile | 12 + .../gpu/drm/panthor/system/panthor_system.c | 298 ++++++++ include/uapi/drm/panthor_drm.h | 20 +- 35 files changed, 3338 insertions(+), 171 deletions(-) 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.c -- 2.43.0
