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>
This commit is contained in:
Raviteja Tamatam
2020-09-30 10:52:58 +05:30
والد 4e1159d7c6
کامیت e5ff0b8f30
12فایلهای تغییر یافته به همراه166 افزوده شده و 17 حذف شده

مشاهده پرونده

@@ -3204,10 +3204,12 @@ static void sde_encoder_frame_done_callback(
static void sde_encoder_get_qsync_fps_callback(
struct drm_encoder *drm_enc,
u32 *qsync_fps)
u32 *qsync_fps, u32 vrr_fps)
{
struct msm_display_info *disp_info;
struct sde_encoder_virt *sde_enc;
int rc = 0;
struct sde_connector *sde_conn;
if (!qsync_fps)
return;
@@ -3221,6 +3223,31 @@ static void sde_encoder_get_qsync_fps_callback(
sde_enc = to_sde_encoder_virt(drm_enc);
disp_info = &sde_enc->disp_info;
*qsync_fps = disp_info->qsync_min_fps;
/**
* If "dsi-supported-qsync-min-fps-list" is defined, get
* the qsync min fps corresponding to the fps in dfps list
*/
if (disp_info->has_qsync_min_fps_list) {
if (!sde_enc->cur_master ||
!(sde_enc->disp_info.capabilities &
MSM_DISPLAY_CAP_VID_MODE)) {
SDE_ERROR("invalid qsync settings %b\n",
!sde_enc->cur_master);
return;
}
sde_conn = to_sde_connector(sde_enc->cur_master->connector);
if (sde_conn->ops.get_qsync_min_fps)
rc = sde_conn->ops.get_qsync_min_fps(sde_conn->display,
vrr_fps);
if (rc <= 0) {
SDE_ERROR("invalid qsync min fps %d\n", rc);
return;
}
*qsync_fps = rc;
}
}
int sde_encoder_idle_request(struct drm_encoder *drm_enc)