drm/imagination: Implement free list and HWRT create and destroy ioctls
authorSarah Walker <sarah.walker@imgtec.com>
Wed, 22 Nov 2023 16:34:36 +0000 (16:34 +0000)
committerMaxime Ripard <mripard@kernel.org>
Thu, 23 Nov 2023 08:01:46 +0000 (09:01 +0100)
commit6eedddab733b350886571f98b810108b13bf74ae
tree953db7e4e093a91194d312c4a03b1757b5147122
parent927f3e0253c11276f0237ca1a14e77c48957c069
drm/imagination: Implement free list and HWRT create and destroy ioctls

Implement ioctls to create and destroy free lists and HWRT datasets. Free
lists are used for GPU-side memory allocation during geometry processing.
HWRT datasets are the FW-side structures representing render targets.

Changes since v8:
- Corrected license identifiers

Changes since v6:
- Fix out-of-bounds shift in get_cr_multisamplectl_val()

Changes since v4:
- Remove use of drm_gem_shmem_get_pages()

Changes since v3:
- Support free list grow requests from FW
- Use drm_dev_{enter,exit}

Co-developed-by: Boris Brezillon <boris.brezillon@collabora.com>
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Co-developed-by: Donald Robson <donald.robson@imgtec.com>
Signed-off-by: Donald Robson <donald.robson@imgtec.com>
Signed-off-by: Sarah Walker <sarah.walker@imgtec.com>
Link: https://lore.kernel.org/r/919358c5887a7628da588c455a5bb7e3ea4b47ae.1700668843.git.donald.robson@imgtec.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
drivers/gpu/drm/imagination/Makefile
drivers/gpu/drm/imagination/pvr_ccb.c
drivers/gpu/drm/imagination/pvr_device.h
drivers/gpu/drm/imagination/pvr_drv.c
drivers/gpu/drm/imagination/pvr_free_list.c [new file with mode: 0644]
drivers/gpu/drm/imagination/pvr_free_list.h [new file with mode: 0644]
drivers/gpu/drm/imagination/pvr_hwrt.c [new file with mode: 0644]
drivers/gpu/drm/imagination/pvr_hwrt.h [new file with mode: 0644]