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

Commit 7f2198e1 authored by Kuogee Hsieh's avatar Kuogee Hsieh
Browse files

mdss: display: always send both column and page to panel



At partial update, When broadcast mode enabled, dsi1 is used
to trigger dcs command to be sent to both panel. Therefore
set_col_page dcs command of dsi1 can not be skipped even its
roi has not changed.

CRs-Fixed: 679218
Change-Id: Id979433fc3993dfb5e6aee4b9779c2cde42617f1
Signed-off-by: default avatarKuogee Hsieh <khsieh@codeaurora.org>
parent c8100225
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -392,7 +392,12 @@ static int mdss_dsi_set_col_page_addr(struct mdss_panel_data *pdata)
	p_roi = &pinfo->roi;
	c_roi = &ctrl->roi;

	if (!mdss_rect_cmp(c_roi, p_roi)) {
	/*
	 * if broadcase mode enable or roi had changed
	 * then do col_page update
	 */
	if (mdss_dsi_broadcast_mode_enabled() ||
				!mdss_rect_cmp(c_roi, p_roi)) {
		pr_debug("%s: ndx=%d x=%d y=%d w=%d h=%d\n",
				__func__, ctrl->ndx, p_roi->x,
				p_roi->y, p_roi->w, p_roi->h);
@@ -402,6 +407,7 @@ static int mdss_dsi_set_col_page_addr(struct mdss_panel_data *pdata)
			/* no new frame update */
			pr_debug("%s: ctrl=%d, no partial roi set\n",
						__func__, ctrl->ndx);
			if (!mdss_dsi_broadcast_mode_enabled())
				return 0;
		}

+11 −0
Original line number Diff line number Diff line
@@ -2982,6 +2982,17 @@ int mdss_mdp_display_commit(struct mdss_mdp_ctl *ctl, void *arg)

	mdss_mdp_xlog_mixer_reg(ctl);

	if (ctl->panel_data &&
			ctl->panel_data->panel_info.partial_update_enabled) {
		/*
		 * update roi of panel_info which will be
		 * used by dsi to set col_page addr of panel
		 */
		ctl->panel_data->panel_info.roi = ctl->roi;
		if (sctl && sctl->panel_data)
			sctl->panel_data->panel_info.roi = sctl->roi;
	}

	if (sctl && !ctl->valid_roi && sctl->valid_roi) {
		/*
		 * Seperate kickoff on DSI1 is needed only when we have
+0 −14
Original line number Diff line number Diff line
@@ -622,25 +622,11 @@ static void mdss_mdp_cmd_set_sync_ctx(

static int mdss_mdp_cmd_set_partial_roi(struct mdss_mdp_ctl *ctl)
{
	struct mdss_mdp_ctl *sctl = NULL;
	struct mdss_rect *roi;
	int rc = 0;

	if (!ctl->panel_data->panel_info.partial_update_enabled)
		return rc;

	sctl = mdss_mdp_get_split_ctl(ctl);

	/* save roi to pinfo which used by dsi controller */
	roi = &ctl->panel_data->panel_info.roi;
	*roi = ctl->roi;

	if (sctl) {
		/* save roi to pinfo whcih used by dsi controller */
		roi = &sctl->panel_data->panel_info.roi;
		*roi = sctl->roi;
	}

	/* set panel col and page addr */
	rc = mdss_mdp_ctl_intf_event(ctl,
			MDSS_EVENT_ENABLE_PARTIAL_ROI, NULL);