diff options
author | Laurent Pinchart <laurent.pinchart@skynet.be> | 2009-04-20 19:51:49 +0200 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@skynet.be> | 2009-04-20 19:51:49 +0200 |
commit | 8650091f79531c84de3ffa46f0b0d7655d610a1a (patch) | |
tree | 41e391b96b2c7e549e538f86d5e3a1f49bb5324c | |
parent | d4b7ca589b79b68daaa259887670edeef1ca37d4 (diff) | |
download | mediapointer-dvb-s2-8650091f79531c84de3ffa46f0b0d7655d610a1a.tar.gz mediapointer-dvb-s2-8650091f79531c84de3ffa46f0b0d7655d610a1a.tar.bz2 |
uvcvideo: fill reserved fields with zero of VIDIOC_QUERYMENU
From: Márton Németh <nm127@freemail.hu>
When querying menu items with VIDIOC_QUERYMENU the reserved field
is not set to zero as required by V4L2 API revision 0.24 [1].
Add this fill.
The patch was tested with v4l-test 0.11 [2] with CNF7129 webcam found
on EeePC 901.
References:
[1] V4L2 API specification, revision 0.24
http://v4l2spec.bytesex.org/spec/r13317.htm#V4L2-QUERYMENU
[2] v4l-test: Test environment for Video For Linux Two API
http://v4l-test.sourceforge.net/
[Modified by Laurent Pinchart]
Use u32 instead of __u32 in non-exported kernel code.
Priority: normal
Signed-off-by: Márton Németh <nm127@freemail.hu>
Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be>
-rw-r--r-- | linux/drivers/media/video/uvc/uvc_v4l2.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/linux/drivers/media/video/uvc/uvc_v4l2.c b/linux/drivers/media/video/uvc/uvc_v4l2.c index e03419afe..bc13dbf05 100644 --- a/linux/drivers/media/video/uvc/uvc_v4l2.c +++ b/linux/drivers/media/video/uvc/uvc_v4l2.c @@ -46,6 +46,8 @@ static int uvc_v4l2_query_menu(struct uvc_video_device *video, struct uvc_menu_info *menu_info; struct uvc_control_mapping *mapping; struct uvc_control *ctrl; + u32 index = query_menu->index; + u32 id = query_menu->id; ctrl = uvc_find_control(video, query_menu->id, &mapping); if (ctrl == NULL || mapping->v4l2_type != V4L2_CTRL_TYPE_MENU) @@ -54,6 +56,10 @@ static int uvc_v4l2_query_menu(struct uvc_video_device *video, if (query_menu->index >= mapping->menu_count) return -EINVAL; + memset(query_menu, 0, sizeof(*query_menu)); + query_menu->id = id; + query_menu->index = index; + menu_info = &mapping->menu_info[query_menu->index]; strlcpy(query_menu->name, menu_info->name, sizeof query_menu->name); return 0; |