Re: [PATCH i-g-t v4 5/5] lib/igt_kms: Added pipe_id_to_vbl_flag() to igt_kms.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 2016-05-11 09:45 AM, Robert Foss wrote:


On 2016-05-10 03:44 AM, Daniel Vetter wrote:
On Tue, Apr 26, 2016 at 11:54:22AM -0400, robert.foss@xxxxxxxxxxxxx
wrote:
From: Robert Foss <robert.foss@xxxxxxxxxxxxx>

Added function pipe_id_to_vbl_flag() to igt_kms.
This function formats a pipe_id into the format
expected by DRM while processing DRM_IOCTL_WAIT_VBLANK.

Signed-off-by: Robert Foss <robert.foss@xxxxxxxxxxxxx>

This needs to be reorder with patch 4 since otherwise the patch to change
kms_vblank won't compile.

Naturally, I will change that in v5.

---
  lib/igt_kms.c | 16 ++++++++++++++++
  lib/igt_kms.h |  1 +
  2 files changed, 17 insertions(+)

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 99b6279..48b95e6 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -2557,3 +2557,19 @@ void igt_reset_connectors(void)
          close(fd);
      }
  }
+
+/**
+ * pipe_id_to_vbl_flag:
+ *
+ * Convert a pipe if into the flag representation
+ * expected in DRM while processing DRM_IOCTL_WAIT_VBLANK.
+ */
+uint32_t pipe_id_to_vbl_flag(uint32_t pipe_id)

kmstest_ prefix please. Also, maybe we should directly take a drmModeCrtc
for even more convenience.

I'll add the prefix and look into taking an drmModeCrtc instead of a
pipe id.

I had a look around at the other places this helper function could be used, and drmModeCrtc are not available in any of them. But pipe ids are. I don't really agree with chaning the pipe_id to drmModeCrtc.

If you still feel like that is the right thing to do, I'll happily change it to drmModeCrtc anyway.


Rob.



Also please use this helper everywhere, a quick grep shows drm_read.c,
kms_flip.c, kms_vblank.c (already in this series) and lib/igt_kms.c.
-Daniel


Will do. I'll add additional uses of this helper function in v5.

+{
+    if (pipe_id == 0)
+        return 0;
+    else if (pipe_id == 1)
+        return 1 | _DRM_VBLANK_SECONDARY;
+    else
+        return pipe_id << 1;
+}
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index d9a4e11..f74edaf 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -400,6 +400,7 @@ void igt_wait_for_vblank(int drm_fd, enum pipe
pipe);

  void igt_enable_connectors(void);
  void igt_reset_connectors(void);
+uint32_t pipe_id_to_vbl_flag(uint32_t pipe_id);

  #define EDID_LENGTH 128
  const unsigned char* igt_kms_get_base_edid(void);
--
2.5.0


_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux