[PATCH 0/7] DRM fence list helpers, V3D CSD support.

From: Eric Anholt
Date: Mon Apr 01 2019 - 18:27:08 EST

The DRM fence list helpers came from needing to fix implicit
synchronization on V3D (serious flickering in X11 once you had
multiple clients involved), a bug I think I noticed in panfrost, and
having recently reviewed lima and liked their model. Compared to
lima, I chose to use xarray as the storage, as I think it cleans
things up significantly. The last_dep thing is a little gross, but
Matthew Wilcox is thinking about giving us an xarray pop function soon
that would let us drop that.

Unfortunately, rebasing the V3D side of things to before the job
refactor was a bit more work than I was ready for, so I'm resending it
and Ccing the Broadcom folks again in the hope that they might be able
to review or ack it. I would still accept an ack from anyone willing
to do so -- the userspace has been sitting around for a long time at
this point, and I'd love to get it merged.

Eric Anholt (7):
drm/v3d: Switch the type of job-> to reduce casting.
drm/v3d: Refactor job management.
drm/v3d: Add support for compute shader dispatch.
drm/v3d: Drop reservation of a shared slot in the dma-buf
drm: Add helpers for setting up an array of dma_fence dependencies.
drm/v3d: Add missing implicit synchronization.
drm/lima: Use the drm_gem_fence_array_add helpers for our deps.

drivers/gpu/drm/drm_gem.c | 94 ++++++
drivers/gpu/drm/lima/lima_gem.c | 37 +-
drivers/gpu/drm/lima/lima_sched.c | 66 +---
drivers/gpu/drm/lima/lima_sched.h | 6 +-
drivers/gpu/drm/v3d/v3d_debugfs.c | 22 ++
drivers/gpu/drm/v3d/v3d_drv.c | 10 +-
drivers/gpu/drm/v3d/v3d_drv.h | 104 +++---
drivers/gpu/drm/v3d/v3d_fence.c | 2 +
drivers/gpu/drm/v3d/v3d_gem.c | 545 +++++++++++++++++++-----------
drivers/gpu/drm/v3d/v3d_irq.c | 24 +-
drivers/gpu/drm/v3d/v3d_regs.h | 73 ++++
drivers/gpu/drm/v3d/v3d_sched.c | 380 ++++++++++++++-------
drivers/gpu/drm/v3d/v3d_trace.h | 94 ++++++
include/drm/drm_gem.h | 5 +
include/uapi/drm/v3d_drm.h | 28 ++
15 files changed, 1019 insertions(+), 471 deletions(-)