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

Commit 926aee04 authored by Ujwal Patel's avatar Ujwal Patel
Browse files

msm: mdss: configure DSC pkt_per_line correctly



DSC pkt_per_line is not mapping to register directly.
value 0 is for 1 pkt, value 1 for 2 pkt and value 2
is for 4 pkt.  3 pkt per line is not support.

Change-Id: I43ff34018668feb7a52eaa8f4b2de632fc9ab59b
Signed-off-by: default avatarKuogee Hsieh <khsieh@codeaurora.org>
Signed-off-by: default avatarUjwal Patel <ujwalp@codeaurora.org>
parent d3f3c0a1
Loading
Loading
Loading
Loading
+24 −11
Original line number Diff line number Diff line
@@ -1092,18 +1092,20 @@ int mdss_dsi_reg_status_check(struct mdss_dsi_ctrl_pdata *ctrl_pdata)
static void mdss_dsi_dsc_config(struct mdss_dsi_ctrl_pdata *ctrl,
				struct dsc_desc *dsc)
{
	u32 data;
	u32 data, offset;

	if (dsc->pkt_per_line <= 0) {
		pr_err("%s: Error: pkt_per_line cannot be negative or 0\n",
			__func__);
		return;
	}

	if (ctrl->panel_mode == DSI_VIDEO_MODE) {
		MIPI_OUTP((ctrl->ctrl_base) +
			MDSS_DSI_VIDEO_COMPRESSION_MODE_CTRL2, 0);
		data = dsc->bytes_per_pkt << 16;
		data |= (0x0b << 8);	/*  dtype of compressed image */
		data |= (dsc->pkt_per_line - 1) << 6;
		data |= dsc->eol_byte_num << 4;
		data |= 1;	/* enable */
		MIPI_OUTP((ctrl->ctrl_base) +
			MDSS_DSI_VIDEO_COMPRESSION_MODE_CTRL, data);
		offset = MDSS_DSI_VIDEO_COMPRESSION_MODE_CTRL;
	} else {
		/* strem 0 */
		MIPI_OUTP((ctrl->ctrl_base) +
@@ -1114,12 +1116,23 @@ static void mdss_dsi_dsc_config(struct mdss_dsi_ctrl_pdata *ctrl,
						dsc->bytes_in_slice);

		data = DTYPE_DCS_LWRITE << 8;
		offset = MDSS_DSI_COMMAND_COMPRESSION_MODE_CTRL;
	}

	/*
	 * pkt_per_line:
	 * 0 == 1 pkt
	 * 1 == 2 pkt
	 * 2 == 4 pkt
	 * 3 pkt is not support
	 */
	if (dsc->pkt_per_line == 4)
		data |= (dsc->pkt_per_line - 2) << 6;
	else
		data |= (dsc->pkt_per_line - 1) << 6;
	data |= dsc->eol_byte_num << 4;
	data |= 1;	/* enable */
		MIPI_OUTP((ctrl->ctrl_base) +
			MDSS_DSI_COMMAND_COMPRESSION_MODE_CTRL, data);
	}
	MIPI_OUTP((ctrl->ctrl_base) + offset, data);
}

static void mdss_dsi_mode_setup(struct mdss_panel_data *pdata)