Input: uvc - the button on the camera is KEY_CAMERA

Cameras should generate KEY_CAMERA, not BTN_0. Also call input_sync()
on the device once the button has been pressed.

Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
This commit is contained in:
Bastien Nocera 2009-01-10 23:44:22 -08:00 коммит произвёл Dmitry Torokhov
Родитель 3c0340b774
Коммит 74ca11c205
1 изменённых файлов: 6 добавлений и 4 удалений

Просмотреть файл

@ -47,8 +47,8 @@ static int uvc_input_init(struct uvc_device *dev)
usb_to_input_id(udev, &input->id);
input->dev.parent = &dev->intf->dev;
set_bit(EV_KEY, input->evbit);
set_bit(BTN_0, input->keybit);
__set_bit(EV_KEY, input->evbit);
__set_bit(KEY_CAMERA, input->keybit);
if ((ret = input_register_device(input)) < 0)
goto error;
@ -71,8 +71,10 @@ static void uvc_input_cleanup(struct uvc_device *dev)
static void uvc_input_report_key(struct uvc_device *dev, unsigned int code,
int value)
{
if (dev->input)
if (dev->input) {
input_report_key(dev->input, code, value);
input_sync(dev->input);
}
}
#else
@ -97,7 +99,7 @@ static void uvc_event_streaming(struct uvc_device *dev, __u8 *data, int len)
return;
uvc_trace(UVC_TRACE_STATUS, "Button (intf %u) %s len %d\n",
data[1], data[3] ? "pressed" : "released", len);
uvc_input_report_key(dev, BTN_0, data[3]);
uvc_input_report_key(dev, KEY_CAMERA, data[3]);
} else {
uvc_trace(UVC_TRACE_STATUS, "Stream %u error event %02x %02x "
"len %d.\n", data[1], data[2], data[3], len);