diff --git a/msm/sde_rsc.c b/msm/sde_rsc.c index 0a70621916..9426dbb949 100644 --- a/msm/sde_rsc.c +++ b/msm/sde_rsc.c @@ -59,7 +59,6 @@ #define PRIMARY_VBLANK_WORST_CASE_MS 34 #define DEFAULT_PANEL_MIN_V_PREFILL 35 -#define DEFAULT_PANEL_MAX_V_PREFILL 108 static struct sde_rsc_priv *rsc_prv_list[MAX_RSC_COUNT]; static struct device *rpmh_dev[MAX_RSC_COUNT]; @@ -294,6 +293,7 @@ static u32 sde_rsc_timer_calculate(struct sde_rsc_priv *rsc, u64 pdc_backoff_time_ns; s64 total; int ret = 0; + u32 default_prefill_lines; if (cmd_config) memcpy(&rsc->cmd_config, cmd_config, sizeof(*cmd_config)); @@ -307,12 +307,13 @@ static u32 sde_rsc_timer_calculate(struct sde_rsc_priv *rsc, rsc->cmd_config.jitter_denom = DEFAULT_PANEL_JITTER_DENOMINATOR; if (!rsc->cmd_config.vtotal) rsc->cmd_config.vtotal = DEFAULT_PANEL_VTOTAL; - if (!rsc->cmd_config.prefill_lines) - rsc->cmd_config.prefill_lines = DEFAULT_PANEL_PREFILL_LINES; - if (rsc->cmd_config.prefill_lines > DEFAULT_PANEL_MAX_V_PREFILL) - rsc->cmd_config.prefill_lines = DEFAULT_PANEL_MAX_V_PREFILL; - if (rsc->cmd_config.prefill_lines < DEFAULT_PANEL_MIN_V_PREFILL) - rsc->cmd_config.prefill_lines = DEFAULT_PANEL_MIN_V_PREFILL; + + default_prefill_lines = (rsc->cmd_config.fps * + DEFAULT_PANEL_MIN_V_PREFILL) / DEFAULT_PANEL_FPS; + if ((state == SDE_RSC_CMD_STATE) || + (rsc->cmd_config.prefill_lines < default_prefill_lines)) + rsc->cmd_config.prefill_lines = default_prefill_lines; + pr_debug("frame fps:%d jitter_numer:%d jitter_denom:%d vtotal:%d prefill lines:%d\n", rsc->cmd_config.fps, rsc->cmd_config.jitter_numer, rsc->cmd_config.jitter_denom, rsc->cmd_config.vtotal,