@@ -2562,3 +2562,22 @@ void igt_reset_connectors(void)
close(fd);
}
}
+
+/**
+ * kmstest_get_vbl_flag:
+ *
+ * Convert a pipe id into the flag representation
+ * expected in DRM while processing DRM_IOCTL_WAIT_VBLANK.
+ */
+uint32_t kmstest_get_vbl_flag(uint32_t pipe_id)
+{
+ if (pipe_id == 0)
+ return 0;
+ else if (pipe_id == 1)
+ return _DRM_VBLANK_SECONDARY;
+ else {
+ uint32_t pipe_flag = pipe_id << 1;
+ igt_assert(!(pipe_flag & ~DRM_VBLANK_HIGH_CRTC_MASK));
+ return pipe_flag;
+ }
+}
@@ -380,6 +380,7 @@ void igt_wait_for_vblank(int drm_fd, enum pipe pipe);
void igt_enable_connectors(void);
void igt_reset_connectors(void);
+uint32_t kmstest_get_vbl_flag(uint32_t pipe_id);
#define EDID_LENGTH 128
const unsigned char* igt_kms_get_base_edid(void);