disp: msm: dsi: add support for splitlink sublinks video data swap

Change adds support for enabling splitlink sublinks video data swap.

Change-Id: I731b85a5e8fe8638005433819957dd0658f72963
Signed-off-by: Vara Reddy <varar@codeaurora.org>
This commit is contained in:
Vara Reddy
2021-02-09 12:32:34 -08:00
rodzic 1b3ad8486d
commit 13b88147a1
5 zmienionych plików z 35 dodań i 20 usunięć

Wyświetl plik

@@ -2055,7 +2055,7 @@ static void adjust_timing_by_ctrl_count(const struct dsi_display *display,
struct dsi_display_mode *mode)
{
struct dsi_host_common_cfg *host = &display->panel->host_config;
bool is_split_link = host->split_link.split_link_enabled;
bool is_split_link = host->split_link.enabled;
u32 sublinks_count = host->split_link.num_sublinks;
if (is_split_link && sublinks_count > 1) {
@@ -5297,16 +5297,9 @@ static int dsi_display_validate_split_link(struct dsi_display *display)
struct dsi_display_ctrl *ctrl;
struct dsi_host_common_cfg *host = &display->panel->host_config;
if (!host->split_link.split_link_enabled)
if (!host->split_link.enabled)
return 0;
if (display->panel->panel_mode == DSI_OP_CMD_MODE) {
DSI_ERR("[%s] split link is not supported in command mode\n",
display->name);
rc = -ENOTSUPP;
goto error;
}
display_for_each_ctrl(i, display) {
ctrl = &display->ctrl[i];
if (!ctrl->ctrl->split_link_supported) {
@@ -5317,13 +5310,14 @@ static int dsi_display_validate_split_link(struct dsi_display *display)
}
set_bit(DSI_PHY_SPLIT_LINK, ctrl->phy->hw.feature_map);
host->split_link.panel_mode = display->panel->panel_mode;
}
DSI_DEBUG("Split link is enabled\n");
return 0;
error:
host->split_link.split_link_enabled = false;
host->split_link.enabled = false;
return rc;
}
@@ -6553,7 +6547,7 @@ int dsi_display_get_info(struct drm_connector *connector,
info->te_source = display->te_source;
host = &display->panel->host_config;
if (host->split_link.split_link_enabled)
if (host->split_link.enabled)
info->capabilities |= MSM_DISPLAY_SPLIT_LINK;
info->dsc_count = display->panel->dsc_count;
@@ -6827,7 +6821,7 @@ int dsi_display_get_modes(struct dsi_display *display,
display_mode.timing.mdp_transfer_time_us;
}
is_split_link = host->split_link.split_link_enabled;
is_split_link = host->split_link.enabled;
sublinks_count = host->split_link.num_sublinks;
if (is_split_link && sublinks_count > 1) {
display_mode.timing.h_active *= sublinks_count;
@@ -6924,7 +6918,7 @@ int dsi_display_get_panel_vfp(void *dsi_display,
}
host = &display->panel->host_config;
if (host->split_link.split_link_enabled)
if (host->split_link.enabled)
h_active *= host->split_link.num_sublinks;
else
h_active *= display->ctrl_count;