disp: msm: dsi: add qsync min fps val in dsi display mode priv info

In the current code for finding the qsync min fps for a
mode, entire mode list is iterated which involves acquiring
dsi display_lock. During conn tx debugfs commands, if
qsync min fps is required, we try to acquire dsi
display_lock twice which results in hang state. This change
adds qsync min fps value in dsi_display_mode_priv_info
struct in order to get the qsync fps from the
msm_display_mode present in connector state instead of
looping through all the modes to find the mode qsync fps.

Change-Id: Ifded40d1f12462bb50fc7bdafb746ae5b8d9512a
Signed-off-by: Yashwanth <yvulapu@codeaurora.org>
这个提交包含在:
Yashwanth
2021-09-13 09:42:13 +05:30
父节点 0f0c5990ca
当前提交 6619470eb6
修改 6 个文件,包含 23 行新增25 行删除

查看文件

@@ -700,30 +700,21 @@ int dsi_conn_set_avr_step_info(struct dsi_panel *panel, void *info)
return 0;
}
int dsi_conn_get_qsync_min_fps(void *display_dsi, struct drm_connector_state *conn_state)
int dsi_conn_get_qsync_min_fps(struct drm_connector_state *conn_state)
{
struct dsi_display *display = (struct dsi_display *)display_dsi;
int rc = 0;
struct dsi_display_mode partial_dsi_mode, *dsi_mode;
struct msm_sub_mode new_sub_mode;
struct sde_connector_state *sde_conn_state;
struct drm_display_mode *drm_mode;
struct sde_connector_state *sde_conn_state = to_sde_connector_state(conn_state);
struct msm_display_mode *msm_mode;
struct dsi_display_mode_priv_info *priv_info;
if (!display || !display->drm_conn || !conn_state)
if (!sde_conn_state)
return -EINVAL;
sde_conn_state = to_sde_connector_state(conn_state);
drm_mode = sde_conn_state->msm_mode.base;
convert_to_dsi_mode(drm_mode, &partial_dsi_mode);
new_sub_mode.dsc_mode = sde_connector_get_property(conn_state, CONNECTOR_PROP_DSC_MODE);
msm_mode = &sde_conn_state->msm_mode;
if (!msm_mode || !msm_mode->private)
return -EINVAL;
rc = dsi_display_find_mode(display, &partial_dsi_mode, &new_sub_mode, &dsi_mode);
if (rc) {
DSI_ERR("invalid mode\n");
return rc;
}
return dsi_mode->timing.qsync_min_fps;
priv_info = (struct dsi_display_mode_priv_info *)(msm_mode->private);
return priv_info->qsync_min_fps;
}
int dsi_conn_set_info_blob(struct drm_connector *connector,