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

Commit 03a7c14c authored by Krishna Manikandan's avatar Krishna Manikandan
Browse files

msm: mdss: Signal the fences when there is a dma_done timeout



During kickoff before proceeding with the configuration
for the current frame, we wait for the previous dma_done
to complete. If there is a dma_done timeout during the
kickoff, we are not proceeding with the current request and
hence the fences should be signaled before returning.

Change-Id: Icb3314cb186a6adbf2fae2489338bfa8e4122f46
Signed-off-by: default avatarKrishna Manikandan <mkrishn@codeaurora.org>
parent e701f80b
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -1674,8 +1674,8 @@ static int mdp3_ctrl_display_commit_kickoff(struct msm_fb_data_type *mfd,
					mdp3_session->intf);
			if (!rc && !mdp3_session->first_commit) {
				pr_err("dma done timedout\n");
				mutex_unlock(&mdp3_session->lock);
				return -ETIMEDOUT;
				rc = -ETIMEDOUT;
				goto frame_done;
			}
		}

@@ -1897,6 +1897,8 @@ static void mdp3_ctrl_pan_display(struct msm_fb_data_type *mfd)
					mdp3_session->intf);
			if (!rc && !mdp3_session->first_commit) {
				pr_err("dma done timedout\n");
				mdp3_ctrl_notify(mdp3_session,
	                                MDP_NOTIFY_FRAME_TIMEOUT);
				goto pan_error;
			}
		}
+1 −1
Original line number Diff line number Diff line
@@ -726,7 +726,7 @@ return rc;
static int mdp3_wait_for_dma_comp(struct mdp3_dma *dma, struct mdp3_intf *intf)
{
	int vsync_status;
	int rc = 0;
	int rc = 1;
	int retry_count = 2;

	if (intf->active) {
+1 −0
Original line number Diff line number Diff line
@@ -1715,6 +1715,7 @@ int mdp3_ppp_parse_req(void __user *p,
					mdp3_session->intf);
		if (!rc) {
			pr_err("secure dma done not completed\n");
			rc = -ETIMEDOUT;
			goto parse_err_2;
		}
		mdp3_session->transition_state = SECURE_TO_NONSECURE;