disp: msm: sde: add support for qsync min fps list
In current implementation qsync min fps is single value. It is same for all the list of supported dfps list. Added support for new dt entry dsi-supported-qsync-min-fps-list corresponding to the fps supported in the dfps list dsi-supported-dfps-list. Change-Id: Ifd5309c2f51865a3c0d9fadb65cbcd291b6ef42b Signed-off-by: Raviteja Tamatam <travitej@codeaurora.org>
这个提交包含在:
@@ -6445,7 +6445,10 @@ int dsi_display_get_info(struct drm_connector *connector,
|
||||
info->max_width = 1920;
|
||||
info->max_height = 1080;
|
||||
info->qsync_min_fps =
|
||||
display->panel->qsync_min_fps;
|
||||
display->panel->qsync_caps.qsync_min_fps;
|
||||
info->has_qsync_min_fps_list =
|
||||
(display->panel->qsync_caps.qsync_min_fps_list_len > 0) ?
|
||||
true : false;
|
||||
info->poms_align_vsync = display->panel->poms_align_vsync;
|
||||
|
||||
switch (display->panel->panel_mode) {
|
||||
@@ -6907,6 +6910,25 @@ int dsi_display_get_default_lms(void *dsi_display, u32 *num_lm)
|
||||
return rc;
|
||||
}
|
||||
|
||||
int dsi_display_get_qsync_min_fps(void *display_dsi, u32 mode_fps)
|
||||
{
|
||||
struct dsi_display *display = (struct dsi_display *)display_dsi;
|
||||
struct dsi_panel *panel;
|
||||
u32 i;
|
||||
|
||||
if (display == NULL || display->panel == NULL)
|
||||
return -EINVAL;
|
||||
|
||||
panel = display->panel;
|
||||
for (i = 0; i < panel->dfps_caps.dfps_list_len; i++) {
|
||||
if (panel->dfps_caps.dfps_list[i] == mode_fps)
|
||||
return panel->qsync_caps.qsync_min_fps_list[i];
|
||||
}
|
||||
SDE_EVT32(mode_fps);
|
||||
DSI_DEBUG("Invalid mode_fps %d\n", mode_fps);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
int dsi_display_find_mode(struct dsi_display *display,
|
||||
const struct dsi_display_mode *cmp,
|
||||
struct dsi_display_mode **out_mode)
|
||||
@@ -7754,7 +7776,7 @@ static int dsi_display_qsync(struct dsi_display *display, bool enable)
|
||||
int i;
|
||||
int rc = 0;
|
||||
|
||||
if (!display->panel->qsync_min_fps) {
|
||||
if (!display->panel->qsync_caps.qsync_min_fps) {
|
||||
DSI_ERR("%s:ERROR: qsync set, but no fps\n", __func__);
|
||||
return 0;
|
||||
}
|
||||
@@ -7782,7 +7804,7 @@ static int dsi_display_qsync(struct dsi_display *display, bool enable)
|
||||
}
|
||||
|
||||
exit:
|
||||
SDE_EVT32(enable, display->panel->qsync_min_fps, rc);
|
||||
SDE_EVT32(enable, display->panel->qsync_caps.qsync_min_fps, rc);
|
||||
mutex_unlock(&display->display_lock);
|
||||
return rc;
|
||||
}
|
||||
|
在新工单中引用
屏蔽一个用户