diff options
Diffstat (limited to 'drivers/gpu/drm/msm/msm_ringbuffer.h')
| -rw-r--r-- | drivers/gpu/drm/msm/msm_ringbuffer.h | 13 | 
1 files changed, 12 insertions, 1 deletions
| diff --git a/drivers/gpu/drm/msm/msm_ringbuffer.h b/drivers/gpu/drm/msm/msm_ringbuffer.h index 0987d6bf848c..fe55d4a1aa16 100644 --- a/drivers/gpu/drm/msm/msm_ringbuffer.h +++ b/drivers/gpu/drm/msm/msm_ringbuffer.h @@ -39,14 +39,25 @@ struct msm_ringbuffer {  	int id;  	struct drm_gem_object *bo;  	uint32_t *start, *end, *cur, *next; + +	/* +	 * List of in-flight submits on this ring.  Protected by submit_lock. +	 */  	struct list_head submits; +	spinlock_t submit_lock; +  	uint64_t iova;  	uint32_t seqno;  	uint32_t hangcheck_fence;  	struct msm_rbmemptrs *memptrs;  	uint64_t memptrs_iova;  	struct msm_fence_context *fctx; -	spinlock_t lock; + +	/* +	 * preempt_lock protects preemption and serializes wptr updates against +	 * preemption.  Can be aquired from irq context. +	 */ +	spinlock_t preempt_lock;  };  struct msm_ringbuffer *msm_ringbuffer_new(struct msm_gpu *gpu, int id, | 
