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

Commit e79c1f4b authored by Jayant Shekhar's avatar Jayant Shekhar
Browse files

msm: mdss: Acquire shared lock after getting frame on wfd



Currently there is a deadlock when wfd and rotation is done
simultaneously and trying to acquire the shared lock. To
prevent this, acquire shared lock after rotated frame is
ready for wfd.

Change-Id: I3865f02c345ddadd985ee35134454a789936a79a
Signed-off-by: default avatarJayant Shekhar <jshekhar@codeaurora.org>
parent 255f9b06
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -2749,6 +2749,7 @@ int mdss_mdp_display_commit(struct mdss_mdp_ctl *ctl, void *arg)
		}
	}

	if (!ctl->shared_lock)
		mdss_mdp_ctl_notify(ctl, MDP_NOTIFY_FRAME_READY);

	if (ctl->wait_pingpong)
+7 −2
Original line number Diff line number Diff line
@@ -1297,8 +1297,11 @@ int mdss_mdp_overlay_kickoff(struct msm_fb_data_type *mfd,
	int ret = 0;
	int sd_in_pipe = 0;

	if (ctl->shared_lock)
	if (ctl->shared_lock) {
		mdss_mdp_ctl_notify(ctl, MDP_NOTIFY_FRAME_BEGIN);
		mdss_mdp_ctl_notify(ctl, MDP_NOTIFY_FRAME_READY);
		mutex_lock(ctl->shared_lock);
	}

	mutex_lock(&mdp5_data->ov_lock);
	mutex_lock(&mdp5_data->list_lock);
@@ -1322,7 +1325,9 @@ int mdss_mdp_overlay_kickoff(struct msm_fb_data_type *mfd,
			mdp5_data->sd_enabled = 0;
	}

	if (!ctl->shared_lock)
		mdss_mdp_ctl_notify(ctl, MDP_NOTIFY_FRAME_BEGIN);

	mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_ON, false);

	if (data)