Merge "disp: msm: sde: add support for qsync min fps list"

This commit is contained in:
qctecmdr
2020-10-19 16:18:30 -07:00
zatwierdzone przez Gerrit - the friendly Code Review server
12 zmienionych plików z 166 dodań i 17 usunięć

Wyświetl plik

@@ -3218,10 +3218,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;
@@ -3235,6 +3237,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)