From 0b680372247a631b5b26f95e0fd01d505bb29090 Mon Sep 17 00:00:00 2001 From: Abhijit Kulkarni Date: Wed, 17 Jun 2020 17:40:19 -0700 Subject: [PATCH] disp: msm: sde: fix qos perf for 90Hz panel This change fixes the issue in selecting the correct perf index for the 90Hz refresh rate, before this change values corresponding to 60Hz were getting applied for this refresh rate. Change-Id: Id4f8af4da95f0d13d30f6316dc26dd65b61d7f79 Signed-off-by: Abhijit Kulkarni --- msm/sde/sde_encoder_phys_wb.c | 9 ++++----- msm/sde/sde_plane.c | 9 ++++----- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/msm/sde/sde_encoder_phys_wb.c b/msm/sde/sde_encoder_phys_wb.c index f00cfe24be..12c3d7fb43 100644 --- a/msm/sde/sde_encoder_phys_wb.c +++ b/msm/sde/sde_encoder_phys_wb.c @@ -168,12 +168,11 @@ static void sde_encoder_phys_wb_set_qos(struct sde_encoder_phys *phys_enc) hw_wb = wb_enc->hw_wb; qos_count = perf->qos_refresh_count; - while (qos_count && perf->qos_refresh_rate) { - if (frame_rate >= perf->qos_refresh_rate[qos_count - 1]) { - fps_index = qos_count - 1; + while ((fps_index < qos_count) && perf->qos_refresh_rate) { + if ((frame_rate <= perf->qos_refresh_rate[fps_index]) || + (fps_index == qos_count - 1)) break; - } - qos_count--; + fps_index++; } qos_cfg.danger_safe_en = true; diff --git a/msm/sde/sde_plane.c b/msm/sde/sde_plane.c index 8ab7ab0311..60ef973e44 100644 --- a/msm/sde/sde_plane.c +++ b/msm/sde/sde_plane.c @@ -290,12 +290,11 @@ static void _sde_plane_set_qos_lut(struct drm_plane *plane, frame_rate = crtc->mode.vrefresh; perf = &psde->catalog->perf; qos_count = perf->qos_refresh_count; - while (qos_count && perf->qos_refresh_rate) { - if (frame_rate >= perf->qos_refresh_rate[qos_count - 1]) { - fps_index = qos_count - 1; + while ((fps_index < qos_count) && perf->qos_refresh_rate) { + if ((frame_rate <= perf->qos_refresh_rate[fps_index]) || + (fps_index == qos_count - 1)) break; - } - qos_count--; + fps_index++; } if (!psde->is_rt_pipe) {