summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2019-02-20 17:12:17 +0200
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2019-02-20 17:15:26 +0200
commitd1cf03eaf9b9423817115a69e64a5e5155dc5409 (patch)
treec374b8aecbf81022d9a54be8e1c4ad3fb574a083
parent394935b7aaf1274865b5d7b9c32a1e4262342095 (diff)
Fix emulation of old API for string controls
For kernel versions that didn't define the V4L2_CTRL_FLAG_HAS_PAYLOAD flag, commits 2f146567186f ("Implement compound control get support") and 4480b561404f ("Implement compound control set support") broke string control support. Fix this by emulating the V4L2_CTRL_FLAG_HAS_PAYLOAD and compound control API for the older API. Fixes: 2f146567186f ("Implement compound control get support") Fixes: 4480b561404f ("Implement compound control set support") Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-rw-r--r--yavta.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/yavta.c b/yavta.c
index 0efa7d7..7d9c40c 100644
--- a/yavta.c
+++ b/yavta.c
@@ -637,6 +637,12 @@ static int query_control(struct device *dev, unsigned int id,
query->default_value = q.default_value;
query->flags = q.flags;
+ if (q.type == V4L2_CTRL_TYPE_STRING &&
+ !(q.flags & V4L2_CTRL_FLAG_HAS_PAYLOAD)) {
+ query->elem_size = q.maximum + 1;
+ query->elems = 1;
+ }
+
return 0;
}