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

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

Merge "mdss: rotator: remove ov_lock for rotator sessions"

parents d3cd2a73 1d953faf
Loading
Loading
Loading
Loading
+18 −11
Original line number Diff line number Diff line
@@ -1040,6 +1040,11 @@ static int mdss_mdp_overlay_set(struct msm_fb_data_type *mfd,
	struct mdss_overlay_private *mdp5_data = mfd_to_mdp5_data(mfd);
	int ret;

	if (req->flags & MDSS_MDP_ROT_ONLY) {
		ret = mdss_mdp_rotator_setup(mfd, req);
		return ret;
	}

	ret = mutex_lock_interruptible(&mdp5_data->ov_lock);
	if (ret)
		return ret;
@@ -1049,9 +1054,7 @@ static int mdss_mdp_overlay_set(struct msm_fb_data_type *mfd,
		return -EPERM;
	}

	if (req->flags & MDSS_MDP_ROT_ONLY) {
		ret = mdss_mdp_rotator_setup(mfd, req);
	} else if (req->src.format == MDP_RGB_BORDERFILL) {
	if (req->src.format == MDP_RGB_BORDERFILL) {
		req->id = BORDERFILL_NDX;
	} else {
		struct mdss_mdp_pipe *pipe;
@@ -2020,6 +2023,11 @@ static int mdss_mdp_overlay_unset(struct msm_fb_data_type *mfd, int ndx)
	if (!mdp5_data || !mdp5_data->ctl)
		return -ENODEV;

	if (ndx & MDSS_MDP_ROT_SESSION_MASK) {
		ret = mdss_mdp_rotator_unset(ndx);
		return ret;
	}

	ret = mutex_lock_interruptible(&mdp5_data->ov_lock);
	if (ret)
		return ret;
@@ -2038,11 +2046,7 @@ static int mdss_mdp_overlay_unset(struct msm_fb_data_type *mfd, int ndx)

	pr_debug("unset ndx=%x\n", ndx);

	if (ndx & MDSS_MDP_ROT_SESSION_MASK) {
		ret = mdss_mdp_rotator_unset(ndx);
	} else {
	ret = mdss_mdp_overlay_release(mfd, ndx);
	}

done:
	mutex_unlock(&mdp5_data->ov_lock);
@@ -2185,6 +2189,11 @@ static int mdss_mdp_overlay_play(struct msm_fb_data_type *mfd,

	pr_debug("play req id=%x\n", req->id);

	if (req->id & MDSS_MDP_ROT_SESSION_MASK) {
		ret = mdss_mdp_rotator_play(mfd, req);
		return ret;
	}

	ret = mutex_lock_interruptible(&mdp5_data->ov_lock);
	if (ret)
		return ret;
@@ -2194,9 +2203,7 @@ static int mdss_mdp_overlay_play(struct msm_fb_data_type *mfd,
		goto done;
	}

	if (req->id & MDSS_MDP_ROT_SESSION_MASK) {
		ret = mdss_mdp_rotator_play(mfd, req);
	} else if (req->id == BORDERFILL_NDX) {
	if (req->id == BORDERFILL_NDX) {
		pr_debug("borderfill enable\n");
		mdp5_data->borderfill_enable = true;
		ret = mdss_mdp_overlay_free_fb_pipe(mfd);