Hey Rob, here is a newly refreshed chunk of my active stack starting with some bug fixes and cleanups and culminating in A5XX preemption. Not everything here is 100% production ready - I would definately like a comment on the drawqueue idea (like for example, is drawqueue a stupid name?). There are probably tons of cleanups to be had too so the sooner it gets torn apart, the sooner I can have it fixed and ready for msm-next to be ready for drm-next. Thanks! Jordan Jordan Crouse (13): drm/msm: Take the mutex before calling msm_gem_new_impl drm/msm: Fix the check for the command size drm/msm: Remove DRM_MSM_NUM_IOCTLS drm/msm: Remove idle function hook drm/msm: Add hint to DRM_IOCTL_MSM_GEM_INFO to return an object IOVA drm/msm: get an iova from the address space instead of an id drm/msm: Add a struct to pass configuration to msm_gpu_init() drm/msm: Remove memptrs->wptr drm/msm: Add drawqueues drm/msm: Support multiple 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 | 1 + drivers/gpu/drm/msm/adreno/a3xx_gpu.c | 13 +- drivers/gpu/drm/msm/adreno/a4xx_gpu.c | 13 +- drivers/gpu/drm/msm/adreno/a5xx_gpu.c | 222 +++++++++++++++++--- drivers/gpu/drm/msm/adreno/a5xx_gpu.h | 102 ++++++++- drivers/gpu/drm/msm/adreno/a5xx_power.c | 11 +- drivers/gpu/drm/msm/adreno/a5xx_preempt.c | 332 ++++++++++++++++++++++++++++++ drivers/gpu/drm/msm/adreno/adreno_gpu.c | 183 ++++++++++------ drivers/gpu/drm/msm/adreno/adreno_gpu.h | 44 ++-- drivers/gpu/drm/msm/dsi/dsi_host.c | 15 +- drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c | 8 +- drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.c | 16 +- drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.h | 4 - drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c | 13 +- drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c | 5 +- drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c | 11 +- drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.h | 4 - drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c | 13 +- drivers/gpu/drm/msm/msm_drv.c | 137 ++++++++++-- drivers/gpu/drm/msm/msm_drv.h | 35 ++-- drivers/gpu/drm/msm/msm_fb.c | 15 +- drivers/gpu/drm/msm/msm_fbdev.c | 10 +- drivers/gpu/drm/msm/msm_fence.c | 92 +++++++-- drivers/gpu/drm/msm/msm_fence.h | 15 +- drivers/gpu/drm/msm/msm_gem.c | 138 +++++++++---- drivers/gpu/drm/msm/msm_gem.h | 7 +- drivers/gpu/drm/msm/msm_gem_submit.c | 51 ++++- drivers/gpu/drm/msm/msm_gpu.c | 153 +++++++++----- drivers/gpu/drm/msm/msm_gpu.h | 51 ++++- drivers/gpu/drm/msm/msm_kms.h | 3 + drivers/gpu/drm/msm/msm_ringbuffer.c | 21 +- drivers/gpu/drm/msm/msm_ringbuffer.h | 22 +- include/uapi/drm/msm_drm.h | 29 ++- 33 files changed, 1418 insertions(+), 371 deletions(-) create mode 100644 drivers/gpu/drm/msm/adreno/a5xx_preempt.c -- 1.9.1 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel