From a702cd897f3c0e114138c11525529df3ef0dd05c Mon Sep 17 00:00:00 2001 From: Dhaval Patel Date: Mon, 22 Apr 2019 13:20:01 -0700 Subject: [PATCH] disp: msm: avoid vsync delay during seamless mode switch Remove sde rscc vsync wait requirement during seamless mode switch state transition to reduce the transition delay. SDE RSCC rev 3.0 only keeps vsync wait requirement for solver mode disable. Change-Id: I6119dbb97d47a70eecc9e5d356c648003adfcc29 Signed-off-by: Dhaval Patel --- msm/sde_rsc.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/msm/sde_rsc.c b/msm/sde_rsc.c index cf218c69932b..f12f6bf5c125 100644 --- a/msm/sde_rsc.c +++ b/msm/sde_rsc.c @@ -484,7 +484,7 @@ static int sde_rsc_switch_to_cmd(struct sde_rsc_priv *rsc, */ if (rsc->current_state == SDE_RSC_CMD_STATE) { rc = 0; - if (config) + if (config && rsc->version < SDE_RSC_REV_3) goto vsync_wait; else goto end; @@ -504,7 +504,8 @@ static int sde_rsc_switch_to_cmd(struct sde_rsc_priv *rsc, vsync_wait: /* indicate wait for vsync for vid to cmd state switch & cfg update */ - if (!rc && (rsc->current_state == SDE_RSC_VID_STATE || + if (!rc && (rsc->version < SDE_RSC_REV_3) && + (rsc->current_state == SDE_RSC_VID_STATE || rsc->current_state == SDE_RSC_CMD_STATE)) { /* clear VSYNC timestamp for indication when update completes */ if (rsc->hw_ops.hw_vsync) @@ -622,7 +623,7 @@ static int sde_rsc_switch_to_vid(struct sde_rsc_priv *rsc, */ if (rsc->current_state == SDE_RSC_VID_STATE) { rc = 0; - if (config) + if (config && rsc->version < SDE_RSC_REV_3) goto vsync_wait; else goto end; @@ -643,7 +644,8 @@ static int sde_rsc_switch_to_vid(struct sde_rsc_priv *rsc, vsync_wait: /* indicate wait for vsync for vid to cmd state switch & cfg update */ - if (!rc && (rsc->current_state == SDE_RSC_VID_STATE || + if (!rc && (rsc->version < SDE_RSC_REV_3) && + (rsc->current_state == SDE_RSC_VID_STATE || rsc->current_state == SDE_RSC_CMD_STATE)) { /* clear VSYNC timestamp for indication when update completes */ if (rsc->hw_ops.hw_vsync)