From d1cf03eaf9b9423817115a69e64a5e5155dc5409 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Wed, 20 Feb 2019 17:12:17 +0200 Subject: 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 --- yavta.c | 6 ++++++ 1 file changed, 6 insertions(+) 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; } -- cgit v1.2.3