| From: |
| Boris Brezillon <boris.brezillon-AT-collabora.com> |
| To: |
| Steven Price <steven.price-AT-arm.com> |
| Subject: |
| [PATCH v4 00/14] drm/panfrost, panthor: Cached maps and explicit flushing |
| Date: |
| Wed, 15 Oct 2025 18:03:12 +0200 |
| Message-ID: |
| <20251015160326.3657287-1-boris.brezillon@collabora.com> |
| Cc: |
| dri-devel-AT-lists.freedesktop.org, Maarten Lankhorst <maarten.lankhorst-AT-linux.intel.com>, Maxime Ripard <mripard-AT-kernel.org>, Thomas Zimmermann <tzimmermann-AT-suse.de>, David Airlie <airlied-AT-gmail.com>, Simona Vetter <simona-AT-ffwll.ch>, Faith Ekstrand <faith.ekstrand-AT-collabora.com>, Boris Brezillon <boris.brezillon-AT-collabora.com>, kernel-AT-collabora.com |
| Archive-link: |
| Article |
This series implements cached maps and explicit flushing for both panfrost
and panthor. To avoid code/bug duplication, the tricky guts of the cache
flushing ioctl which walk the sg list are broken into a new common shmem
helper which can be used by any driver.
The PanVK MR to use this lives here:
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests...
Changes in v2:
- Expose the coherency so userspace can know when it should skip cache
maintenance
- Hook things up at drm_gem_object_funcs level to dma-buf cpu_prep hooks
can be implemented generically
- Revisit the semantics of the flags passed to gem_sync()
- Add BO_QUERY_INFO ioctls to query BO flags on imported objects and
let the UMD know when cache maintenance is needed on those
Changes in v3:
- New patch to fix panthor_gpu_coherency_set()
- No other major changes, check each patch changelog for more details
Changes in v4:
- Two trivial fixes, check each patch changelog for more details
Boris Brezillon (7):
drm/panthor: Fix panthor_gpu_coherency_set()
drm/gem: Add a drm_gem_object_funcs::sync() and a drm_gem_sync()
helper
drm/prime: Provide default ::{begin,end}_cpu_access() implementations
drm/panthor: Expose the selected coherency protocol to the UMD
drm/panthor: Add an ioctl to query BO flags
drm/panfrost: Expose the selected coherency protocol to the UMD
drm/panfrost: Add an ioctl to query BO flags
Faith Ekstrand (6):
drm/shmem: Add a drm_gem_shmem_sync() helper
drm/panthor: Add a PANTHOR_BO_SYNC ioctl
drm/panthor: Bump the driver version to 1.6
drm/panfrost: Add a PANFROST_SYNC_BO ioctl
drm/panfrost: Add flag to map GEM object Write-Back Cacheable
drm/panfrost: Bump the driver version to 1.6
Loïc Molinari (1):
drm/panthor: Add flag to map GEM object Write-Back Cacheable
drivers/gpu/drm/drm_gem.c | 10 ++
drivers/gpu/drm/drm_gem_shmem_helper.c | 89 +++++++++++
drivers/gpu/drm/drm_prime.c | 42 +++++
drivers/gpu/drm/panfrost/panfrost_device.h | 1 +
drivers/gpu/drm/panfrost/panfrost_drv.c | 106 ++++++++++++-
drivers/gpu/drm/panfrost/panfrost_gem.c | 23 +++
drivers/gpu/drm/panfrost/panfrost_gem.h | 2 +
drivers/gpu/drm/panfrost/panfrost_gpu.c | 26 +++-
drivers/gpu/drm/panfrost/panfrost_regs.h | 10 +-
drivers/gpu/drm/panthor/panthor_device.c | 10 +-
drivers/gpu/drm/panthor/panthor_drv.c | 84 +++++++++-
drivers/gpu/drm/panthor/panthor_gem.c | 24 +++
drivers/gpu/drm/panthor/panthor_gem.h | 3 +
drivers/gpu/drm/panthor/panthor_gpu.c | 2 +-
drivers/gpu/drm/panthor/panthor_sched.c | 18 ++-
include/drm/drm_gem.h | 45 ++++++
include/drm/drm_gem_shmem_helper.h | 11 ++
include/drm/drm_prime.h | 5 +
include/uapi/drm/panfrost_drm.h | 74 +++++++++
include/uapi/drm/panthor_drm.h | 171 ++++++++++++++++++++-
20 files changed, 738 insertions(+), 18 deletions(-)
--
2.51.0