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

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

Merge "msm: mdss: Fix rgb_565 format for 90 degree rotation"

parents 01585e5a 13df9210
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -251,6 +251,7 @@ static int mdss_mdp_writeback_prepare_rot(struct mdss_mdp_ctl *ctl, void *arg)
	struct mdss_mdp_writeback_arg *wb_args;
	struct mdss_mdp_rotator_session *rot;
	struct mdss_data_type *mdata;
	struct mdss_mdp_format_params *fmt;
	u32 format;

	ctx = (struct mdss_mdp_writeback_ctx *) ctl->priv_data;
@@ -288,8 +289,15 @@ static int mdss_mdp_writeback_prepare_rot(struct mdss_mdp_ctl *ctl, void *arg)

	ctx->rot90 = !!(rot->flags & MDP_ROT_90);

	fmt = mdss_mdp_get_format_params(rot->format);
	if (!fmt) {
		pr_err("invalid pipe format %d\n", rot->format);
		return -EINVAL;
	}

	if (ctx->bwc_mode || (ctx->rot90 &&
			     (mdata->mdp_rev < MDSS_MDP_HW_REV_102)))
			((mdata->mdp_rev < MDSS_MDP_HW_REV_102)
			|| !fmt->is_yuv)))
		format = mdss_mdp_get_rotator_dst_format(rot->format, 1);
	else
		format = mdss_mdp_get_rotator_dst_format(rot->format, 0);
+11 −5
Original line number Diff line number Diff line
@@ -414,16 +414,22 @@ static int mdss_mdp_overlay_pipe_setup(struct msm_fb_data_type *mfd,
	pr_debug("pipe ctl=%u req id=%x mux=%d\n", mdp5_data->ctl->num, req->id,
			mixer_mux);

	fmt = mdss_mdp_get_format_params(req->src.format);
	if (!fmt) {
		pr_err("invalid pipe format %d\n", req->src.format);
		return -EINVAL;
	}

	if ((req->flags & MDP_BWC_EN) || ((req->flags & MDP_SOURCE_ROTATED_90)
		&& (mdata->mdp_rev < MDSS_MDP_HW_REV_102)))
		&& ((mdata->mdp_rev < MDSS_MDP_HW_REV_102) || !fmt->is_yuv))) {
		req->src.format =
			mdss_mdp_get_rotator_dst_format(req->src.format, 1);

		fmt = mdss_mdp_get_format_params(req->src.format);
		if (!fmt) {
			pr_err("invalid pipe format %d\n", req->src.format);
			return -EINVAL;
		}
	}

	ret = mdss_mdp_overlay_req_check(mfd, req, fmt);
	if (ret)