On Fri, 21 Mar 2025 09:16:45 +0100 Boris Brezillon <boris.brezil...@collabora.com> wrote:
> On Thu, 20 Mar 2025 11:17:36 +0000 > Karunika Choo <karunika.c...@arm.com> wrote: > > > This patch moves GPU info initialization into panthor_hw.c in > > preparation of handling GPU register changes. The GPU register reading > > operations to populate gpu_info are separated into an architecture > > specific arch_*_gpu_info_init() function and is called via the new > > function pointer abstraction under hw.ops.gpu_info_init(). > > > > Future GPU support will be performed by implementing a *_gpu_info_init() > > function specific to that architecture version. It can call any existing > > *_gpu_info_init() and extend it with additional register reads or > > provide an entirely different implementation. > > Could you give us an insight into what the reg layout changes are? So > far, they were mostly unchanged between GPU gens, and I'd really > prefer we could keep the majority of them unchanged part of the commo > discovery, and only add the missing reads in the ->gpu_info_init() > callback. > > Note that I'm also working on abstracting mali device operations to add > JM support to panthor, and the only things I had to specialize are: > > - CSF ID for CSF > - JS features/present masks for JM > > The rest is just common. So what I have is a common gpu_init_info() > helper that reads all the regs excepts those two, and after that, I > have a device ops selection based on the arch major of the GPU ID [1]. > The device-specific GPU info are then read as part of the > panthor_device_ops::init(). With the link this time :-). [1]https://gitlab.freedesktop.org/bbrezillon/linux/-/blob/panthor-jm/drivers/gpu/drm/panthor/panthor_device.c?ref_type=heads#L359