This patch series introduces a GPU HW abstraction to Panthor, to enable support for new Mali GPUs.
Key changes: - Addition of GPU-specific initialization framework to standardize and streamline support new GPUs. - Support for cache maintenance via the FLUSH_CACHES GPU command. - Support for Mali-Gx10, Mali-Gx15, Mali-Gx20, and Mali-Gx25 GPUs. Firmware for these GPUs can be found here: https://gitlab.com/dliviu/linux-firmware Patch Breakdown: [PATCH 1]: Implements the GPU-specific initialization framework to handle differences between GPU architectures by enabling definition of architecture-specific initialization routines [PATCH 2-3]: Refactors gpu_info initialization in preparation for GPU register changes and at the same time simplifies and makes extensible the process of determining the GPU model name. [PATCH 4]: Adds support for Mali-G710, Mali-G510 and Mali-G310. [PATCH 5]: Adds support for Mali-Gx15 GPUs. [PATCH 6]: Adds cache maintenance via the FLUSH_CACHES GPU command due to deprecation of FLUSH_MEM and FLUSH_PT MMU_AS commands from Mali-Gx20 onwards. [PATCH 7]: Adds support for Mali-Gx20 and Mali-Gx25 GPUs. v4: - Split 64-bit register accessor patches into another patch series. - link: https://lore.kernel.org/dri-devel/[email protected]/ - Switched to using arch_major for comparison instead of arch_id in panthor_hw.c. - Removed the gpu_info_init function pointer in favour of a single function to handle minor register changes. The function names have also been adjusted accordingly. - Moved the patch to support Mali-G710, Mali-G510 and Mali-G310 forwards to [PATCH 4/7]. - Extended support to perform cache maintenance via GPU_CONTROL to Mali-Gx10 and Mali-Gx15 GPUs. - Link to v2: https://lore.kernel.org/all/[email protected]/ v3: - Kindly ignore this patch series as there were duplicate patches being included. v2: - Removed handling for register base addresses as they are not yet needed. - Merged gpu_info handling into panthor_hw.c as they depend on the same arch_id matching mechanism. - Made gpu_info initialization a GPU-specific function. - Removed unnecessary changes for cache maintenance via GPU_CONTROL. - Removed unnecessary pre-parsing of register fields from v1. Retaining current implementation as much as possible. - Added support for G710, G715, G720, and G725 series of Mali GPUs. - Link to v1: https://lore.kernel.org/all/[email protected]/ Thanks, Karunika Choo Karunika Choo (7): drm/panthor: Add GPU specific initialization framework drm/panthor: Move GPU info initialization into panthor_hw.c drm/panthor: Simplify getting the GPU model name drm/panthor: Add support for Mali-G710, Mali-G510 and Mali-G310 drm/panthor: Add support for Mali-Gx15 family of GPUs drm/panthor: Support GPU_CONTROL cache flush based on feature bit drm/panthor: Add support for Mali-Gx20 and Mali-Gx25 GPUs drivers/gpu/drm/panthor/Makefile | 1 + drivers/gpu/drm/panthor/panthor_device.c | 5 + drivers/gpu/drm/panthor/panthor_device.h | 4 + drivers/gpu/drm/panthor/panthor_fw.c | 5 + drivers/gpu/drm/panthor/panthor_gpu.c | 95 ----------- drivers/gpu/drm/panthor/panthor_hw.c | 197 +++++++++++++++++++++++ drivers/gpu/drm/panthor/panthor_hw.h | 66 ++++++++ drivers/gpu/drm/panthor/panthor_mmu.c | 35 ++++ drivers/gpu/drm/panthor/panthor_regs.h | 25 +++ include/uapi/drm/panthor_drm.h | 3 + 10 files changed, 341 insertions(+), 95 deletions(-) create mode 100644 drivers/gpu/drm/panthor/panthor_hw.c create mode 100644 drivers/gpu/drm/panthor/panthor_hw.h -- 2.49.0
