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: Rashi Bindra <rbindra@codeaurora.org>
This commit is contained in:
Rashi Bindra 2017-07-25 14:37:50 +05:30 committed by Gerrit - the friendly Code Review server
parent 1e931d0f3f
commit 5f292a6eae

View file

@ -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.