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: allow EILSEQ as well as error Author: Hans Verkuil <hans.verk...@cisco.com> Date: Fri Sep 7 12:02:35 2018 +0200 If the UVC driver couldn't get/set a control it used to return EIO, but this has changed to EILSEQ with a recent kernel change. Actually, EIO is now split into multiple errors, but I am getting EILSEQ where I used to get EIO. Signed-off-by: Hans Verkuil <hans.verk...@cisco.com> utils/v4l2-compliance/v4l2-test-controls.cpp | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) --- http://git.linuxtv.org/cgit.cgi/v4l-utils.git/commit/?id=1121e071aec3af327aa01cac296e0737614dc48f diff --git a/utils/v4l2-compliance/v4l2-test-controls.cpp b/utils/v4l2-compliance/v4l2-test-controls.cpp index 508daf05c561..b00aa7d9902f 100644 --- a/utils/v4l2-compliance/v4l2-test-controls.cpp +++ b/utils/v4l2-compliance/v4l2-test-controls.cpp @@ -433,6 +433,9 @@ int testSimpleControls(struct node *node) } else if (ret == EIO) { warn("s_ctrl returned EIO\n"); ret = 0; + } else if (ret == EILSEQ) { + warn("s_ctrl returned EILSEQ\n"); + ret = 0; } else if (ret) { return fail("s_ctrl returned an error (%d)\n", ret); } @@ -446,7 +449,7 @@ int testSimpleControls(struct node *node) ctrl.id = qctrl.id; ctrl.value = qctrl.minimum - 1; ret = doioctl(node, VIDIOC_S_CTRL, &ctrl); - if (ret && ret != EIO && ret != ERANGE) + if (ret && ret != EIO && ret != EILSEQ && ret != ERANGE) return fail("invalid minimum range check\n"); if (!ret && checkSimpleCtrl(ctrl, qctrl)) return fail("invalid control %08x\n", qctrl.id); @@ -456,7 +459,7 @@ int testSimpleControls(struct node *node) ctrl.id = qctrl.id; ctrl.value = qctrl.maximum + 1; ret = doioctl(node, VIDIOC_S_CTRL, &ctrl); - if (ret && ret != EIO && ret != ERANGE) + if (ret && ret != EIO && ret != EILSEQ && ret != ERANGE) return fail("invalid maximum range check\n"); if (!ret && checkSimpleCtrl(ctrl, qctrl)) return fail("invalid control %08x\n", qctrl.id); @@ -469,7 +472,7 @@ int testSimpleControls(struct node *node) if (ret == ERANGE) warn("%s: returns ERANGE for in-range, but non-step-multiple value\n", qctrl.name); - else if (ret && ret != EIO) + else if (ret && ret != EIO && ret != EILSEQ) return fail("returns error for in-range, but non-step-multiple value\n"); } @@ -499,15 +502,15 @@ int testSimpleControls(struct node *node) ctrl.id = qctrl.id; ctrl.value = qctrl.minimum; ret = doioctl(node, VIDIOC_S_CTRL, &ctrl); - if (ret && ret != EIO) + if (ret && ret != EIO && ret != EILSEQ) return fail("could not set minimum value\n"); ctrl.value = qctrl.maximum; ret = doioctl(node, VIDIOC_S_CTRL, &ctrl); - if (ret && ret != EIO) + if (ret && ret != EIO && ret != EILSEQ) return fail("could not set maximum value\n"); ctrl.value = qctrl.default_value; ret = doioctl(node, VIDIOC_S_CTRL, &ctrl); - if (ret && ret != EIO) + if (ret && ret != EIO && ret != EILSEQ) return fail("could not set default value\n"); } } @@ -641,6 +644,9 @@ int testExtendedControls(struct node *node) if (ret == EIO) { warn("g_ext_ctrls returned EIO\n"); ret = 0; + } else if (ret == EILSEQ) { + warn("g_ext_ctrls returned EILSEQ\n"); + ret = 0; } if (ret) return fail("g_ext_ctrls returned an error (%d)\n", ret); @@ -670,6 +676,9 @@ int testExtendedControls(struct node *node) if (ret == EIO) { warn("s_ext_ctrls returned EIO\n"); ret = 0; + } else if (ret == EILSEQ) { + warn("s_ext_ctrls returned EILSEQ\n"); + ret = 0; } if (ret) return fail("s_ext_ctrls returned an error (%d)\n", ret); @@ -739,6 +748,9 @@ int testExtendedControls(struct node *node) if (ret == EIO) { warn("s_ext_ctrls returned EIO\n"); ret = 0; + } else if (ret == EILSEQ) { + warn("s_ext_ctrls returned EILSEQ\n"); + ret = 0; } if (ret) return fail("could not set all controls\n"); @@ -765,6 +777,9 @@ int testExtendedControls(struct node *node) if (ret == EIO) { warn("s_ext_ctrls returned EIO\n"); ret = 0; + } else if (ret == EILSEQ) { + warn("s_ext_ctrls returned EILSEQ\n"); + ret = 0; } if (ret && !multiple_classes) return fail("could not set all controls of a specific class\n"); _______________________________________________ linuxtv-commits mailing list linuxtv-commits@linuxtv.org https://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits