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 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel