[PATCH v2 0/8] drm/panthor: Localize register access by component

Karunika Choo
2026-04-12T14:31:14Z

Hi all,

This series refactors the panthor register access paths so that each
component uses its own local iomem base instead of relying on the
global device mapping throughout the driver.

Today a number of register definitions and helpers are still expressed
in terms of the full device register space, which makes it easy for one
component to reach into another component's registers.

The series prepares the driver for a cleaner per-component layout in 3
steps:
- make the low-level GPU register helpers operate on an iomem pointer
rather than a panthor_device pointer
- split register definitions and move cross-component accesses behind
helpers owned by the relevant component
- convert GPU, PWR, firmware and MMU code to use component-local iomem
bases, while keeping IRQ handling on a dedicated IRQ-local base.

The end result is that register accesses become more obviously scoped to
the component that owns them, cross-component register accesses are
removed from callers, and the common IRQ helpers no longer depend on
absolute register offsets.

No functional change is intended.

v2:
- Picked up Acks from Boris.
- Moved GPU_ID definitions into panthor_gpu_regs.h and deleted
panthor_hw_regs.h
- Fixed incorrect spelling of timestamp helper functions.
- Changed IRQ request function to take an iomem pointer instead of an
offset.
- Update panthor_gpu_info_init() to use the correct block-local iomem
pointers for register accesses.
- Link to v1: https://lore.kernel.org/all/20260410164637.549145-1-karunika.choo@arm.com/

Kind regards,
Karunika

Karunika Choo (8):
drm/panthor: Pass an iomem pointer to GPU register access helpers
drm/panthor: Split register definitions by components
drm/panthor: Replace cross-component register accesses with helpers
drm/panthor: Store IRQ register base iomem pointer in panthor_irq
drm/panthor: Use a local iomem base for GPU registers
drm/panthor: Use a local iomem base for PWR registers
drm/panthor: Use a local iomem base for firmware control registers
drm/panthor: Use a local iomem base for MMU AS registers

drivers/gpu/drm/panthor/panthor_device.c | 28 +-
drivers/gpu/drm/panthor/panthor_device.h | 92 ++++---
drivers/gpu/drm/panthor/panthor_drv.c | 7 +-
drivers/gpu/drm/panthor/panthor_fw.c | 40 ++-
drivers/gpu/drm/panthor/panthor_fw.h | 1 +
drivers/gpu/drm/panthor/panthor_fw_regs.h | 29 ++
drivers/gpu/drm/panthor/panthor_gpu.c | 101 +++++--
drivers/gpu/drm/panthor/panthor_gpu.h | 6 +
drivers/gpu/drm/panthor/panthor_gpu_regs.h | 119 +++++++++
drivers/gpu/drm/panthor/panthor_heap.c | 2 +-
drivers/gpu/drm/panthor/panthor_hw.c | 54 ++--
drivers/gpu/drm/panthor/panthor_hw.h | 2 +-
drivers/gpu/drm/panthor/panthor_mmu.c | 46 ++--
drivers/gpu/drm/panthor/panthor_mmu_regs.h | 69 +++++
drivers/gpu/drm/panthor/panthor_pwr.c | 93 ++++---
drivers/gpu/drm/panthor/panthor_pwr_regs.h | 79 ++++++
drivers/gpu/drm/panthor/panthor_regs.h | 291 ---------------------
drivers/gpu/drm/panthor/panthor_sched.c | 5 +-
18 files changed, 584 insertions(+), 480 deletions(-)
create mode 100644 drivers/gpu/drm/panthor/panthor_fw_regs.h
create mode 100644 drivers/gpu/drm/panthor/panthor_gpu_regs.h
create mode 100644 drivers/gpu/drm/panthor/panthor_mmu_regs.h
create mode 100644 drivers/gpu/drm/panthor/panthor_pwr_regs.h
delete mode 100644 drivers/gpu/drm/panthor/panthor_regs.h

--
2.43.0