Since commit

commit 2e564ee56978874ddd4a8d061d37be088f130fd9
Author: Hans Verkuil <hans.verk...@cisco.com>
        vidioc-g-parm.rst: also allow _MPLANE buffer types

V4L2 allows _MPLANE buffer types for capture/output on s/g_parm
operations.

Relax v4l2-compliance check to comply with this.

Signed-off-by: Jacopo Mondi <jac...@jmondi.org>
---
 utils/v4l2-compliance/v4l2-test-formats.cpp | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/utils/v4l2-compliance/v4l2-test-formats.cpp 
b/utils/v4l2-compliance/v4l2-test-formats.cpp
index b7a32fe..25c4da5 100644
--- a/utils/v4l2-compliance/v4l2-test-formats.cpp
+++ b/utils/v4l2-compliance/v4l2-test-formats.cpp
@@ -1235,9 +1235,20 @@ int testParm(struct node *node)
                            type != V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE &&
                            type != V4L2_BUF_TYPE_VIDEO_OUTPUT)
                                return fail("G/S_PARM is only allowed for video 
capture/output\n");
-                       if (!(node->g_caps() & buftype2cap[type]))
-                               return fail("%s cap not set, but G/S_PARM 
worked\n",
-                                               buftype2s(type).c_str());
+
+                       if (!((node->g_caps() & V4L2_BUF_TYPE_VIDEO_CAPTURE ||
+                                       node->g_caps() & 
V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE)) &&
+                                       ((buftype2cap[type] == 
V4L2_BUF_TYPE_VIDEO_CAPTURE ||
+                                       buftype2cap[type] == 
V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE)))
+                                               return fail("%s cap not set, 
but G/S_PARM worked\n",
+                                                               
buftype2s(type).c_str());
+
+                       if (!((node->g_caps() & V4L2_BUF_TYPE_VIDEO_OUTPUT ||
+                                       node->g_caps() & 
V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE)) &&
+                                       ((buftype2cap[type] == 
V4L2_BUF_TYPE_VIDEO_OUTPUT ||
+                                       buftype2cap[type] == 
V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE)))
+                                               return fail("%s cap not set, 
but G/S_PARM worked\n",
+                                                               
buftype2s(type).c_str());
                }
        }

--
2.7.4

Reply via email to