V4L/DVB: uvcvideo: Make button controls work properly
According to the v4l2 spec, writing any value to a button control should result in the action belonging to the button control being triggered. UVC cams however want to see a 1 written, this patch fixes this by overriding whatever value user space passed in with -1 (0xffffffff) when the control is a button control. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
e56be91666
commit
3653639e5d
1 changed files with 8 additions and 0 deletions
|
@ -698,6 +698,14 @@ static void uvc_set_le_value(struct uvc_control_mapping *mapping,
|
||||||
int offset = mapping->offset;
|
int offset = mapping->offset;
|
||||||
__u8 mask;
|
__u8 mask;
|
||||||
|
|
||||||
|
/* According to the v4l2 spec, writing any value to a button control
|
||||||
|
* should result in the action belonging to the button control being
|
||||||
|
* triggered. UVC devices however want to see a 1 written -> override
|
||||||
|
* value.
|
||||||
|
*/
|
||||||
|
if (mapping->v4l2_type == V4L2_CTRL_TYPE_BUTTON)
|
||||||
|
value = -1;
|
||||||
|
|
||||||
data += offset / 8;
|
data += offset / 8;
|
||||||
offset &= 7;
|
offset &= 7;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue