Thread (10 messages) 10 messages, 5 authors, 2021-06-10

Re: [igt-dev] [PATCH v2] tests/kms_vblank: Turn on hardware before testing invalid vblank.

From: Mark Yacoub <hidden>
Date: 2021-06-10 15:07:31

On Wed, Jun 9, 2021 at 4:15 PM Rodrigo Siqueira
[off-list ref] wrote:
On 06/01, Mark Yacoub wrote:
quoted
From: Mark Yacoub <redacted>

[Why]
Before any hardware is on, the vblank is off and its ref counter is in
an initialized state as each driver handles toggling it differently.
Ioctl DRM_IOCTL_WAIT_VBLANK could return 0 such as on i915, or an invalid
integer that doesn't mean much, such as on Zork running Kernel 5.4 due
to the kernel workaround that increments the vblank ref count to prevent
a get from enabling the interrupt.

[How]
For invalid_subtest(), active the CRTCs to turn the hardware on so
DRM_IOCTL_WAIT_VBLANK returns something meaningful.

=== Changes from v1 ===
1. Update Commit message
2. Rename variable p to pipe_number
nit:
When I see changes in history in the commit (git log), it usually looks like:

Changes since v1:

or

v1:

but tbh, I don't think we have this documented anywhere...
quoted
Signed-off-by: Mark Yacoub <redacted>
You forget to add your name in the S-o-b.
done. thanks!
Best Regards
quoted
---
 tests/kms_vblank.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/tests/kms_vblank.c b/tests/kms_vblank.c
index 93b01eba..988794c0 100644
--- a/tests/kms_vblank.c
+++ b/tests/kms_vblank.c
@@ -475,8 +475,14 @@ static void invalid_subtest(data_t *data, int fd)
 {
      union drm_wait_vblank vbl;
      unsigned long valid_flags;
+     igt_display_t* display = &data->display;
+     enum pipe pipe_number = 0;
+     igt_output_t* output;

-     igt_display_require_output_on_pipe(&data->display, 0);
+     igt_display_require_output_on_pipe(display, pipe_number);
+     data->pipe = pipe_number;
+     for_each_valid_output_on_pipe(display, pipe_number, output)
+             prepare_crtc(data, fd, output);

      /* First check all is well with a simple query */
      memset(&vbl, 0, sizeof(vbl));
@@ -511,6 +517,9 @@ static void invalid_subtest(data_t *data, int fd)
      vbl.request.type |= _DRM_VBLANK_SECONDARY;
      vbl.request.type |= _DRM_VBLANK_FLAGS_MASK;
      igt_assert_eq(wait_vblank(fd, &vbl), -EINVAL);
+
+     for_each_valid_output_on_pipe(display, pipe_number, output)
+             cleanup_crtc(data, fd, output);
 }

 igt_main
--
2.32.0.rc0.204.g9fa02ecfa5-goog
--
Rodrigo Siqueira
https://siqueira.tech
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help