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

Commit 5f292a6e authored by Rashi Bindra's avatar Rashi Bindra Committed by Gerrit - the friendly Code Review server
Browse files

msm: mdss: Fix the DSI lane swap programming logic



In the current programming sequence, if a particular logical lane
is not used, we map the corresponding physical lane for this to '0';
which means no connection. This can cause DSI FIFO overflow issues
for panels which don't use all the 4 lanes. Fix this by programming
the LOGICAL_LANE_SWAP_CTRL for all the 4 lanes always, irrespective
of the number of lanes used.

Change-Id: I31a703f8f5133eb85c33fd0d3728f824a435392d
Signed-off-by: default avatarRashi Bindra <rbindra@codeaurora.org>
parent 1e931d0f
Loading
Loading
Loading
Loading
+0 −17
Original line number Diff line number Diff line
@@ -3268,21 +3268,6 @@ end:
	return rc;
}

static void mdss_dsi_ctrl_validate_lane_swap_config(
	struct mdss_dsi_ctrl_pdata *ctrl)
{
	struct mipi_panel_info *mipi = &ctrl->panel_data.panel_info.mipi;

	if (!mipi->data_lane0)
		ctrl->lane_map[DSI_LOGICAL_LANE_0] = DSI_PHYSICAL_LANE_INVALID;
	if (!mipi->data_lane1)
		ctrl->lane_map[DSI_LOGICAL_LANE_1] = DSI_PHYSICAL_LANE_INVALID;
	if (!mipi->data_lane2)
		ctrl->lane_map[DSI_LOGICAL_LANE_2] = DSI_PHYSICAL_LANE_INVALID;
	if (!mipi->data_lane3)
		ctrl->lane_map[DSI_LOGICAL_LANE_3] = DSI_PHYSICAL_LANE_INVALID;
}

static int mdss_dsi_ctrl_validate_config(struct mdss_dsi_ctrl_pdata *ctrl)
{
	int rc = 0;
@@ -3292,8 +3277,6 @@ static int mdss_dsi_ctrl_validate_config(struct mdss_dsi_ctrl_pdata *ctrl)
		goto error;
	}

	mdss_dsi_ctrl_validate_lane_swap_config(ctrl);

	/*
	 * check to make sure that the byte interface clock is specified for
	 * DSI ctrl version 2 and above.