disp: msm: sde: correct num_datapath during PM resume with CWB
In PM resume with CWB concurrency usecase, crtc pointer in
conn->state is NULL since drm_mode_config_reset operation is
performed on pm_resume. This change relies on conn_mask in
new_crtc_state for primary connector retrieval and also adds
get_num_lm_from_mode callback to DSI for LM count retrieval
from dsi panel topology. Existing get_mode_info api cannot
retrieve the topology info because mode->priv_info is NULL.
This occurs as WB encoder is added in the drm encoder_list
before primary encoder, introduced as part of commit d28ebf05f4
("disp: msm: sde: populate WB display encoder list before dsi").
Change-Id: I55358fd88ab778bd81475cf3628be13335de1cb5
Signed-off-by: Jayaprakash Madisetty <jmadiset@codeaurora.org>
Signed-off-by: Samantha Tran <samtran@codeaurora.org>
Этот коммит содержится в:

коммит произвёл
Samantha Tran

родитель
6a01182c1e
Коммит
a29369e224
@@ -549,6 +549,29 @@ u32 dsi_drm_get_dfps_maxfps(void *display)
|
||||
return dfps_maxfps;
|
||||
}
|
||||
|
||||
int dsi_conn_get_lm_from_mode(void *display, const struct drm_display_mode *drm_mode)
|
||||
{
|
||||
struct dsi_display *dsi_display = display;
|
||||
struct dsi_display_mode dsi_mode, *panel_dsi_mode;
|
||||
int rc = -EINVAL;
|
||||
|
||||
if (!dsi_display || !drm_mode) {
|
||||
DSI_ERR("Invalid params %d %d\n", !display, !drm_mode);
|
||||
return rc;
|
||||
}
|
||||
|
||||
convert_to_dsi_mode(drm_mode, &dsi_mode);
|
||||
|
||||
rc = dsi_display_find_mode(dsi_display, &dsi_mode, NULL, &panel_dsi_mode);
|
||||
if (rc) {
|
||||
DSI_ERR("mode not found %d\n", rc);
|
||||
drm_mode_debug_printmodeline(drm_mode);
|
||||
return rc;
|
||||
}
|
||||
|
||||
return panel_dsi_mode->priv_info->topology.num_lm;
|
||||
}
|
||||
|
||||
int dsi_conn_get_mode_info(struct drm_connector *connector,
|
||||
const struct drm_display_mode *drm_mode,
|
||||
struct msm_sub_mode *sub_mode,
|
||||
|
Ссылка в новой задаче
Block a user