This is an automatic generated email to let you know that the following patch 
were queued at the 
http://git.linuxtv.org/cgit.cgi/v4l-utils.git tree:

Subject: v4l2-compliance: always test blocking wait
Author:  Hans Verkuil <hverkuil-ci...@xs4all.nl>
Date:    Mon Sep 2 09:49:38 2024 +0200

The blocking wait test is currently only run if -s was specified.
But it doesn't depend on streaming since it never queues any buffers.

So just always perform this test. This will make it easier to catch
situations where the wait_prepare/finish ops weren't set.

Signed-off-by: Hans Verkuil <hverkuil-ci...@xs4all.nl>

 utils/v4l2-compliance/v4l2-compliance.cpp   | 4 ++--
 utils/v4l2-compliance/v4l2-test-buffers.cpp | 3 +++
 2 files changed, 5 insertions(+), 2 deletions(-)

---

http://git.linuxtv.org/cgit.cgi/v4l-utils.git/commit/?id=fce3922fbe38fb005bb864d8780d67735be1a3d1
diff --git a/utils/v4l2-compliance/v4l2-compliance.cpp 
b/utils/v4l2-compliance/v4l2-compliance.cpp
index 144f961842c6..1190a80215fa 100644
--- a/utils/v4l2-compliance/v4l2-compliance.cpp
+++ b/utils/v4l2-compliance/v4l2-compliance.cpp
@@ -1478,6 +1478,8 @@ void testNode(struct node &node, struct node 
&node_m2m_cap, struct node &expbuf_
                printf("\ttest Requests: %s\n", ok(testRequests(&node, 
options[OptStreaming])));
                if (sizeof(void *) == 4)
                        printf("\ttest TIME32/64: %s\n", 
ok(testTime32_64(&node)));
+               printf("\ttest blocking wait: %s\n", 
ok(testBlockingWait(&node)));
+
                // Reopen after each streaming test to reset the streaming state
                // in case of any errors in the preceeding test.
                node.reopen();
@@ -1516,8 +1518,6 @@ void testNode(struct node &node, struct node 
&node_m2m_cap, struct node &expbuf_
                        // Reopen after each streaming test to reset the 
streaming state
                        // in case of any errors in the preceeding test.
                        node.reopen();
-                       printf("\ttest blocking wait: %s\n", 
ok(testBlockingWait(&node)));
-                       node.reopen();
                        if (!(node.codec_mask & (STATEFUL_ENCODER | 
STATEFUL_DECODER))) {
                                printf("\ttest MMAP (no poll): %s\n",
                                       ok(testMmap(&node, &node_m2m_cap, 
frame_count, POLL_MODE_NONE)));
diff --git a/utils/v4l2-compliance/v4l2-test-buffers.cpp 
b/utils/v4l2-compliance/v4l2-test-buffers.cpp
index f5bd18b769a8..0d90f5915a11 100644
--- a/utils/v4l2-compliance/v4l2-test-buffers.cpp
+++ b/utils/v4l2-compliance/v4l2-test-buffers.cpp
@@ -3030,6 +3030,9 @@ static int testBlockingDQBuf(struct node *node, 
cv4l_queue &q)
        /*
         * This test checks if a blocking wait in VIDIOC_DQBUF doesn't block
         * other ioctls.
+        *
+        * If this fails, check that the vb2_ops wait_prepare/finish callbacks
+        * are set.
         */
        fflush(stdout);
        thread_dqbuf.start();

Reply via email to