Merge "msm: kgsl: Don't wait for room in context queue when context is invalidated"

This commit is contained in:
qctecmdr 2020-10-13 09:54:30 -07:00 • committed by Gerrit - the friendly Code Review server
commit 29371146ed
2 changed files with 22 additions and 20 deletions

View file

@ -1181,7 +1181,16 @@ static inline int _wait_for_room_in_context_queue(
spin_lock(&drawctxt->lock);
trace_adreno_drawctxt_wake(drawctxt);
if (ret <= 0)
/*
* Account for the possibility that the context got invalidated
* while we were sleeping
*/
if (ret > 0) {
ret = _check_context_state(&drawctxt->base);
if (ret)
return ret;
} else
return (ret == 0) ? -ETIMEDOUT : (int) ret;
}
@ -1196,15 +1205,7 @@ static unsigned int _check_context_state_to_queue_cmds(
if (ret)
return ret;
ret = _wait_for_room_in_context_queue(drawctxt);
if (ret)
return ret;
/*
* Account for the possiblity that the context got invalidated
* while we were sleeping
*/
return _check_context_state(&drawctxt->base);
return _wait_for_room_in_context_queue(drawctxt);
}
static void _queue_drawobj(struct adreno_context *drawctxt,

View file

@ -704,7 +704,16 @@ static inline int _wait_for_room_in_context_queue(
spin_lock(&drawctxt->lock);
trace_adreno_drawctxt_wake(drawctxt);
if (ret <= 0)
/*
* Account for the possibility that the context got invalidated
* while we were sleeping
*/
if (ret > 0) {
ret = _check_context_state(&drawctxt->base);
if (ret)
return ret;
} else
return (ret == 0) ? -ETIMEDOUT : (int) ret;
}
@ -719,15 +728,7 @@ static unsigned int _check_context_state_to_queue_cmds(
if (ret)
return ret;
ret = _wait_for_room_in_context_queue(drawctxt);
if (ret)
return ret;
/*
* Account for the possiblity that the context got invalidated
* while we were sleeping
*/
return _check_context_state(&drawctxt->base);
return _wait_for_room_in_context_queue(drawctxt);
}
static void _queue_drawobj(struct adreno_context *drawctxt,