Loading drivers/gpu/msm/adreno_dispatch.c +24 −25 Original line number Diff line number Diff line Loading @@ -271,6 +271,27 @@ static void _retire_marker(struct kgsl_cmdbatch *cmdbatch) kgsl_cmdbatch_destroy(cmdbatch); } static int _check_context_queue(struct adreno_context *drawctxt) { int ret; spin_lock(&drawctxt->lock); /* * Wake up if there is room in the context or if the whole thing got * invalidated while we were asleep */ if (kgsl_context_invalid(&drawctxt->base)) ret = 1; else ret = drawctxt->queued < _context_cmdqueue_size ? 1 : 0; spin_unlock(&drawctxt->lock); return ret; } /* * return true if this is a marker command and the dependent timestamp has * retired Loading Loading @@ -650,12 +671,11 @@ static int dispatcher_context_sendcmds(struct adreno_device *adreno_dev, } /* * If the context successfully submitted commands there will be room * in the context queue so wake up any snoozing threads that want to * submit commands * Wake up any snoozing threads if we have consumed any real commands * or marker commands and we have room in the context queue. */ if (count) if (_check_context_queue(drawctxt)) wake_up_all(&drawctxt->wq); if (!ret) Loading Loading @@ -799,27 +819,6 @@ static int adreno_dispatcher_issuecmds(struct adreno_device *adreno_dev) return ret; } static int _check_context_queue(struct adreno_context *drawctxt) { int ret; spin_lock(&drawctxt->lock); /* * Wake up if there is room in the context or if the whole thing got * invalidated while we were asleep */ if (kgsl_context_invalid(&drawctxt->base)) ret = 1; else ret = drawctxt->queued < _context_cmdqueue_size ? 1 : 0; spin_unlock(&drawctxt->lock); return ret; } /** * get_timestamp() - Return the next timestamp for the context * @drawctxt - Pointer to an adreno draw context struct Loading Loading
drivers/gpu/msm/adreno_dispatch.c +24 −25 Original line number Diff line number Diff line Loading @@ -271,6 +271,27 @@ static void _retire_marker(struct kgsl_cmdbatch *cmdbatch) kgsl_cmdbatch_destroy(cmdbatch); } static int _check_context_queue(struct adreno_context *drawctxt) { int ret; spin_lock(&drawctxt->lock); /* * Wake up if there is room in the context or if the whole thing got * invalidated while we were asleep */ if (kgsl_context_invalid(&drawctxt->base)) ret = 1; else ret = drawctxt->queued < _context_cmdqueue_size ? 1 : 0; spin_unlock(&drawctxt->lock); return ret; } /* * return true if this is a marker command and the dependent timestamp has * retired Loading Loading @@ -650,12 +671,11 @@ static int dispatcher_context_sendcmds(struct adreno_device *adreno_dev, } /* * If the context successfully submitted commands there will be room * in the context queue so wake up any snoozing threads that want to * submit commands * Wake up any snoozing threads if we have consumed any real commands * or marker commands and we have room in the context queue. */ if (count) if (_check_context_queue(drawctxt)) wake_up_all(&drawctxt->wq); if (!ret) Loading Loading @@ -799,27 +819,6 @@ static int adreno_dispatcher_issuecmds(struct adreno_device *adreno_dev) return ret; } static int _check_context_queue(struct adreno_context *drawctxt) { int ret; spin_lock(&drawctxt->lock); /* * Wake up if there is room in the context or if the whole thing got * invalidated while we were asleep */ if (kgsl_context_invalid(&drawctxt->base)) ret = 1; else ret = drawctxt->queued < _context_cmdqueue_size ? 1 : 0; spin_unlock(&drawctxt->lock); return ret; } /** * get_timestamp() - Return the next timestamp for the context * @drawctxt - Pointer to an adreno draw context struct Loading