Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 29371146 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

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

parents f9790cb3 d8d0a513
Loading
Loading
Loading
Loading
+11 −10
Original line number Diff line number Diff line
@@ -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,
+11 −10
Original line number Diff line number Diff line
@@ -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,