disp: msm: dsi: Fix DSI lane swapping
Replaced lane swap register for lane swap in DSI controller. Added check for where to perform lane swap based on DSI controller version. Replaced function to parse device tree data for lane swap, as previous function did not work. Change-Id: I5e50a761b6ac0d2658ba73a5648e2f80f3470b96 Signed-off-by: Rohith Iyer <quic_rohiiyer@quicinc.com>
Этот коммит содержится в:
@@ -3964,22 +3964,25 @@ static int dsi_display_parse_lane_map(struct dsi_display *display)
|
||||
{
|
||||
int rc = 0, i = 0;
|
||||
const char *data;
|
||||
u8 temp[DSI_LANE_MAX - 1];
|
||||
u32 temp[DSI_LANE_MAX - 1];
|
||||
struct dsi_parser_utils *utils;
|
||||
|
||||
if (!display) {
|
||||
DSI_ERR("invalid params\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
utils = &display->panel->utils;
|
||||
|
||||
/* lane-map-v2 supersedes lane-map-v1 setting */
|
||||
rc = of_property_read_u8_array(display->pdev->dev.of_node,
|
||||
rc = utils->read_u32_array(display->pdev->dev.of_node,
|
||||
"qcom,lane-map-v2", temp, (DSI_LANE_MAX - 1));
|
||||
if (!rc) {
|
||||
for (i = DSI_LOGICAL_LANE_0; i < (DSI_LANE_MAX - 1); i++)
|
||||
display->lane_map.lane_map_v2[i] = BIT(temp[i]);
|
||||
return 0;
|
||||
} else if (rc != EINVAL) {
|
||||
DSI_DEBUG("Incorrect mapping, configure default\n");
|
||||
} else if (rc != -EINVAL) {
|
||||
DSI_DEBUG("Incorrect mapping, configuring default\n");
|
||||
goto set_default;
|
||||
}
|
||||
|
||||
|
Ссылка в новой задаче
Block a user