[PATCH 00/17] drm/msm: GPU fixes and features for 4.14

Jordan Crouse jcrouse at codeaurora.org
Thu Jul 27 16:42:29 UTC 2017


Here is my stack of Adreno GPU goodness for 4.14.  Starting off with a few
fixes that could be appropriate for 4.13 if you deem them so and
then moving into some new features:

 - a5xx hardware fault detection - can detect a legitimate fault within
 microseconds and fires an interrupt so you should be able to recover
 and move on much faster than relying on the timer.

 - submitqueues - submitqueues are the kernel side equivalent of a
 context. The user can set submitqueue specific flags and features
 (such as ringbuffer priority) and in the following patch we move
 to per-submitqueue fences.

 - multiple ringbuffer preemption - provide for multiple ringbuffers,
  allow the user to select a ringbuffer to submit on and preempt
  between the different priorities.  You've seen some of this code
  before but some of our newer features have cleaned things up
  significantly. 

Jordan Crouse (17):
  drm/msm: Remove some potentially blocked register ranges
  drm/msm: Allow hardware clock gating to be toggled
  drm/msm: Turn off hardware clock gating before reading A5XX registers
  drm/msm: Remove uneeded platform dev members
  drm/msm: args->fence should be args->flags
  drm/msm: Remove __user from __u64 data types
  drm/msm: Add A5XX hardware fault detection
  drm/msm: Add per-instance submit queues
  drm/msm: Implement per-submitqueue fences
  drm/msm: Attach the GPU MMU when it is created
  drm/msm: Add a helper function for in-kernel buffer allocations
  drm/msm: Move memptrs to msm_gpu
  drm/msm: Support multiple ringbuffers
  drm/msm: Add a parameter query for the number of ringbuffers
  drm/msm: Shadow current pointer in the ring until command is complete
  drm/msm: Make the value of RB_CNTL (almost) generic
  drm/msm: Implement preemption for A5XX targets

 drivers/gpu/drm/msm/Makefile              |   4 +-
 drivers/gpu/drm/msm/adreno/a3xx_gpu.c     |  12 +-
 drivers/gpu/drm/msm/adreno/a3xx_gpu.h     |   1 -
 drivers/gpu/drm/msm/adreno/a4xx_gpu.c     |  12 +-
 drivers/gpu/drm/msm/adreno/a4xx_gpu.h     |   1 -
 drivers/gpu/drm/msm/adreno/a5xx_gpu.c     | 366 +++++++++++++++++++++---------
 drivers/gpu/drm/msm/adreno/a5xx_gpu.h     | 105 ++++++++-
 drivers/gpu/drm/msm/adreno/a5xx_power.c   |  20 +-
 drivers/gpu/drm/msm/adreno/a5xx_preempt.c | 294 ++++++++++++++++++++++++
 drivers/gpu/drm/msm/adreno/adreno_gpu.c   | 224 ++++++++----------
 drivers/gpu/drm/msm/adreno/adreno_gpu.h   |  43 ++--
 drivers/gpu/drm/msm/msm_drv.c             |  62 ++++-
 drivers/gpu/drm/msm/msm_drv.h             |  28 ++-
 drivers/gpu/drm/msm/msm_fbdev.c           |  35 ++-
 drivers/gpu/drm/msm/msm_fence.c           |   2 +-
 drivers/gpu/drm/msm/msm_fence.h           |   2 +-
 drivers/gpu/drm/msm/msm_gem.c             |  46 ++++
 drivers/gpu/drm/msm/msm_gem.h             |   5 +-
 drivers/gpu/drm/msm/msm_gem_submit.c      |  27 ++-
 drivers/gpu/drm/msm/msm_gpu.c             | 259 +++++++++++++++------
 drivers/gpu/drm/msm/msm_gpu.h             |  54 ++++-
 drivers/gpu/drm/msm/msm_ringbuffer.c      |  35 +--
 drivers/gpu/drm/msm/msm_ringbuffer.h      |  32 ++-
 drivers/gpu/drm/msm/msm_submitqueue.c     | 160 +++++++++++++
 include/uapi/drm/msm_drm.h                |  30 ++-
 25 files changed, 1422 insertions(+), 437 deletions(-)
 create mode 100644 drivers/gpu/drm/msm/adreno/a5xx_preempt.c
 create mode 100644 drivers/gpu/drm/msm/msm_submitqueue.c

-- 
1.9.1



More information about the dri-devel mailing list