diff --git a/msm/sde_rsc.c b/msm/sde_rsc.c index cf218c6993..f12f6bf5c1 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)