瀏覽代碼

disp: msm: sde: skip vsync wait during rsc state switch

When switching from CMD to VIDEO or vice-versa, HW no longer
requires a vsync wait in between since the vsyncs will be
synchronized. So skip the wait for HW which supports this
feature.

Change-Id: Ia5823495bc7bfc7d590098775b0a5f4b4347b5ed
Signed-off-by: Steve Cohen <[email protected]>
Steve Cohen 5 年之前
父節點
當前提交
7a5d2d5d00
共有 1 個文件被更改,包括 14 次插入0 次删除
  1. 14 0
      msm/sde_rsc.c

+ 14 - 0
msm/sde_rsc.c

@@ -543,6 +543,13 @@ static int sde_rsc_switch_to_cmd(struct sde_rsc_priv *rsc,
 		}
 	}
 
+	/* vsync wait not needed during VID->CMD switch (rev 4+ HW only) */
+	if (rsc->current_state == SDE_RSC_VID_STATE &&
+			rsc->version >= SDE_RSC_REV_4) {
+		rc = 0;
+		goto end;
+	}
+
 vsync_wait:
 	/* indicate wait for vsync for vid to cmd state switch & cfg update */
 	if (!rc && (rsc->current_state == SDE_RSC_VID_STATE ||
@@ -689,6 +696,13 @@ static int sde_rsc_switch_to_vid(struct sde_rsc_priv *rsc,
 		}
 	}
 
+	/* vsync wait not needed during CMD->VID switch (rev 4+ HW only) */
+	if (rsc->current_state == SDE_RSC_CMD_STATE &&
+			rsc->version >= SDE_RSC_REV_4) {
+		rc = 0;
+		goto end;
+	}
+
 vsync_wait:
 	/* indicate wait for vsync for vid to cmd state switch & cfg update */
 	if (!rc && (rsc->current_state == SDE_RSC_VID_STATE ||