disp: msm: sde: add allowed_dsc_reservation_switch capability
This change adds allowed_dsc_reservation_switch to determine if dsc seamless switch is supported for DP. Also, based on the flag, it determines and populates the required number of available resources for DP. Change-Id: I9cd7219a50d352369c5bc8386ce7dc25c30b80b6 Signed-off-by: Raviteja Tamatam <travitej@codeaurora.org>
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

parent
b89a3f739a
commit
3789258773
@@ -6447,6 +6447,16 @@ struct drm_panel *dsi_display_get_drm_panel(struct dsi_display *display)
|
||||
return &display->panel->drm_panel;
|
||||
}
|
||||
|
||||
bool dsi_display_has_dsc_switch_support(struct dsi_display *display)
|
||||
{
|
||||
if (!display || !display->panel) {
|
||||
pr_err("invalid param(s)\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
return display->panel->dsc_switch_supported;
|
||||
}
|
||||
|
||||
int dsi_display_drm_ext_bridge_init(struct dsi_display *display,
|
||||
struct drm_encoder *encoder, struct drm_connector *connector)
|
||||
{
|
||||
@@ -6846,6 +6856,7 @@ int dsi_display_get_modes(struct dsi_display *display,
|
||||
u32 sublinks_count, mode_idx, array_idx = 0;
|
||||
struct dsi_dyn_clk_caps *dyn_clk_caps;
|
||||
int i, start, end, rc = -EINVAL;
|
||||
int dsc_modes = 0, nondsc_modes = 0;
|
||||
|
||||
if (!display || !out_modes) {
|
||||
DSI_ERR("Invalid params\n");
|
||||
@@ -6910,6 +6921,11 @@ int dsi_display_get_modes(struct dsi_display *display,
|
||||
support_cmd_mode = display_mode.panel_mode_caps & DSI_OP_CMD_MODE;
|
||||
support_video_mode = display_mode.panel_mode_caps & DSI_OP_VIDEO_MODE;
|
||||
|
||||
if (display_mode.priv_info->dsc_enabled)
|
||||
dsc_modes++;
|
||||
else
|
||||
nondsc_modes++;
|
||||
|
||||
/* Setup widebus support */
|
||||
display_mode.priv_info->widebus_support =
|
||||
ctrl->ctrl->hw.widebus_support;
|
||||
@@ -6987,6 +7003,9 @@ int dsi_display_get_modes(struct dsi_display *display,
|
||||
}
|
||||
}
|
||||
|
||||
if (dsc_modes && nondsc_modes)
|
||||
display->panel->dsc_switch_supported = true;
|
||||
|
||||
exit:
|
||||
*out_modes = display->modes;
|
||||
rc = 0;
|
||||
|
Reference in New Issue
Block a user