This patch series introduces some minor refactoring to enable support for new Mali GPUs.
Key changes: - Addition of cache maintenance via the FLUSH_CACHES GPU command for all supported GPUs in place of FLUSH_MEM and FLUSH_PT MMU_AS commands. - Added SHAREABLE_CACHE support for GPUs from Mali-Gx20 onwards if coherency is enabled. - Fixed minor issue with the setting of the coherency protocol. Firmware for these GPUs can be found here: https://gitlab.com/dliviu/linux-firmware Patch Breakdown: [PATCH 1]: Adds panthor_hw and refactors gpu_info initialization into it, laying the foundation for subsequent changes. [PATCH 2]: Simplifies the method of determining the GPU model name while making it more extensible. [PATCH 3]: Adds support for Mali-G710, Mali-G510 and Mali-G310. [PATCH 4]: Adds support for Mali-Gx15 GPUs. [PATCH 5]: Adds cache maintenance via FLUSH_CACHES GPU command due to the deprecation of FLUSH_MEM and FLUSH_PT MMU_AS commands from Mali-Gx20 onwards. This feature is extended to all previous GPUs as this method of cache maintenance is already supported. [PATCH 6]: Adds support for Mali-Gx20 and Mali-Gx25 GPUs. This also adds SHAREABLE_CACHE support, in addition to fixing a minor issue with setting the coherency protocol. v7: - Picked up R-bs from Chia-I Wu. - Replaced GPU_COHERENCY_FEATURES register read with the value from gpu_info->coherency_features in PATCH 6. - Link to v6: https://lore.kernel.org/all/20250721213528.2885035-1-karunika.c...@arm.com/ v6: - Picked up R-bs from Liviu. - Removed unused register definitions for PATCH 4 and 6. - Link to v5: https://lore.kernel.org/all/20250721111344.1610250-1-karunika.c...@arm.com/ v5: - Removed all of the GPU-specific initialization boilerplate as it was not being used. - Merged [PATCH 1/7] and [PATCH 2/7] into one. - Fixed issue with getting model name before the gpu_info struct is populated. - Merged AMBA_FEATURES and AMBA_ENABLE into GPU_COHERENCY_FEATURES and GPU_COHERENCY_PROTOCOL registers respectively. Reworked the fields of GPU_COHERENCY_FEATURES and added SHAREABLE_CACHE support. - Link to v4: https://lore.kernel.org/all/20250602143216.2621881-1-karunika.c...@arm.com/ v4: - Split 64-bit register accessor patches into another patch series. - link: https://lore.kernel.org/dri-devel/20250417123725.2733201-1-karunika.c...@arm.com/ - 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/20250320111741.1937892-1-karunika.c...@arm.com/ 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/20241219170521.64879-1-karunika.c...@arm.com/ Karunika Choo (6): drm/panthor: Add panthor_hw and move gpu_info initialization into it 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: Make MMU cache maintenance use FLUSH_CACHES command drm/panthor: Add support for Mali-Gx20 and Mali-Gx25 GPUs drivers/gpu/drm/panthor/Makefile | 1 + drivers/gpu/drm/panthor/panthor_device.c | 8 +- drivers/gpu/drm/panthor/panthor_fw.c | 5 + drivers/gpu/drm/panthor/panthor_gpu.c | 103 ++----------------- drivers/gpu/drm/panthor/panthor_hw.c | 125 +++++++++++++++++++++++ drivers/gpu/drm/panthor/panthor_hw.h | 11 ++ drivers/gpu/drm/panthor/panthor_mmu.c | 33 ++++++ drivers/gpu/drm/panthor/panthor_regs.h | 8 +- include/uapi/drm/panthor_drm.h | 3 + 9 files changed, 200 insertions(+), 97 deletions(-) create mode 100644 drivers/gpu/drm/panthor/panthor_hw.c create mode 100644 drivers/gpu/drm/panthor/panthor_hw.h -- 2.49.0