[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