Loading drivers/gpu/msm/adreno_dispatch.c +16 −0 Original line number Diff line number Diff line Loading @@ -1380,6 +1380,22 @@ int adreno_dispatcher_queue_cmds(struct kgsl_device_private *dev_priv, user_ts = *timestamp; /* * If there is only one drawobj in the array and it is of * type SYNCOBJ_TYPE, skip comparing user_ts as it can be 0 */ if (!(count == 1 && drawobj[0]->type == SYNCOBJ_TYPE) && (drawctxt->base.flags & KGSL_CONTEXT_USER_GENERATED_TS)) { /* * User specified timestamps need to be greater than the last * issued timestamp in the context */ if (timestamp_cmp(drawctxt->timestamp, user_ts) >= 0) { spin_unlock(&drawctxt->lock); return -ERANGE; } } for (i = 0; i < count; i++) { switch (drawobj[i]->type) { Loading Loading
drivers/gpu/msm/adreno_dispatch.c +16 −0 Original line number Diff line number Diff line Loading @@ -1380,6 +1380,22 @@ int adreno_dispatcher_queue_cmds(struct kgsl_device_private *dev_priv, user_ts = *timestamp; /* * If there is only one drawobj in the array and it is of * type SYNCOBJ_TYPE, skip comparing user_ts as it can be 0 */ if (!(count == 1 && drawobj[0]->type == SYNCOBJ_TYPE) && (drawctxt->base.flags & KGSL_CONTEXT_USER_GENERATED_TS)) { /* * User specified timestamps need to be greater than the last * issued timestamp in the context */ if (timestamp_cmp(drawctxt->timestamp, user_ts) >= 0) { spin_unlock(&drawctxt->lock); return -ERANGE; } } for (i = 0; i < count; i++) { switch (drawobj[i]->type) { Loading