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

Commit 9e65e672 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: sde: Wait for Rotator HW complete if stop streaming timeout" into msm-4.9

parents 43067454 d0a22cfc
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2007,7 +2007,7 @@ static void sde_rotator_cancel_request(struct sde_rot_mgr *mgr,
	devm_kfree(&mgr->pdev->dev, req);
}

static void sde_rotator_cancel_all_requests(struct sde_rot_mgr *mgr,
void sde_rotator_cancel_all_requests(struct sde_rot_mgr *mgr,
	struct sde_rot_file_private *private)
{
	struct sde_rot_entry_container *req, *req_next;
+8 −0
Original line number Diff line number Diff line
@@ -685,6 +685,14 @@ int sde_rotator_validate_request(struct sde_rot_mgr *rot_dev,
 */
int sde_rotator_clk_ctrl(struct sde_rot_mgr *mgr, int enable);

/*
 * sde_rotator_cancel_all_requests - cancel all outstanding requests
 * @mgr: Pointer to rotator manager
 * @private: Pointer to rotator manager per file context
 */
void sde_rotator_cancel_all_requests(struct sde_rot_mgr *mgr,
	struct sde_rot_file_private *private);

/*
 * sde_rot_mgr_lock - serialization lock prior to rotator manager calls
 * @mgr: Pointer to rotator manager
+5 −1
Original line number Diff line number Diff line
@@ -450,11 +450,15 @@ static void sde_rotator_stop_streaming(struct vb2_queue *q)
			list_empty(&ctx->pending_list),
			msecs_to_jiffies(rot_dev->streamoff_timeout));
	mutex_lock(q->lock);
	if (!ret)
	if (!ret) {
		SDEDEV_ERR(rot_dev->dev,
				"timeout to stream off s:%d t:%d p:%d\n",
				ctx->session_id, q->type,
				!list_empty(&ctx->pending_list));
		sde_rot_mgr_lock(rot_dev->mgr);
		sde_rotator_cancel_all_requests(rot_dev->mgr, ctx->private);
		sde_rot_mgr_unlock(rot_dev->mgr);
	}

	sde_rotator_return_all_buffers(q, VB2_BUF_STATE_ERROR);