Commit bcd3e4b3 authored by Lennart Poettering's avatar Lennart Poettering Committed by Mauro Carvalho Chehab

V4L/DVB (11960): v4l: generate KEY_CAMERA instead of BTN_0 key events on input devices

A bunch of V4L drivers generate BTN_0 instead of KEY_CAMERA key presses.

X11 is able to handle KEY_CAMERA automatically these days while BTN_0 is
not treated at all.  Thus it would be of big benefit if the camera drivers
would consistently generate KEY_CAMERA.  Some drivers (uvc) already do,
this patch updates the remaining drivers to do the same.

I only possess a limited set of webcams, so this isn't tested with all
cameras.  The patch is rather trivial and compile tested, so I'd say it's
still good enough to get merged.
Signed-off-by: default avatarLennart Poettering <mzxreary@0pointer.de>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarDouglas Schilling Landgraf <dougsland@redhat.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 6f4d7239
...@@ -601,7 +601,7 @@ static void pwc_snapshot_button(struct pwc_device *pdev, int down) ...@@ -601,7 +601,7 @@ static void pwc_snapshot_button(struct pwc_device *pdev, int down)
#ifdef CONFIG_USB_PWC_INPUT_EVDEV #ifdef CONFIG_USB_PWC_INPUT_EVDEV
if (pdev->button_dev) { if (pdev->button_dev) {
input_report_key(pdev->button_dev, BTN_0, down); input_report_key(pdev->button_dev, KEY_CAMERA, down);
input_sync(pdev->button_dev); input_sync(pdev->button_dev);
} }
#endif #endif
...@@ -1847,7 +1847,7 @@ static int usb_pwc_probe(struct usb_interface *intf, const struct usb_device_id ...@@ -1847,7 +1847,7 @@ static int usb_pwc_probe(struct usb_interface *intf, const struct usb_device_id
usb_to_input_id(pdev->udev, &pdev->button_dev->id); usb_to_input_id(pdev->udev, &pdev->button_dev->id);
pdev->button_dev->dev.parent = &pdev->udev->dev; pdev->button_dev->dev.parent = &pdev->udev->dev;
pdev->button_dev->evbit[0] = BIT_MASK(EV_KEY); pdev->button_dev->evbit[0] = BIT_MASK(EV_KEY);
pdev->button_dev->keybit[BIT_WORD(BTN_0)] = BIT_MASK(BTN_0); pdev->button_dev->keybit[BIT_WORD(KEY_CAMERA)] = BIT_MASK(KEY_CAMERA);
rc = input_register_device(pdev->button_dev); rc = input_register_device(pdev->button_dev);
if (rc) { if (rc) {
......
...@@ -240,7 +240,7 @@ static void konicawc_register_input(struct konicawc *cam, struct usb_device *dev ...@@ -240,7 +240,7 @@ static void konicawc_register_input(struct konicawc *cam, struct usb_device *dev
input_dev->dev.parent = &dev->dev; input_dev->dev.parent = &dev->dev;
input_dev->evbit[0] = BIT_MASK(EV_KEY); input_dev->evbit[0] = BIT_MASK(EV_KEY);
input_dev->keybit[BIT_WORD(BTN_0)] = BIT_MASK(BTN_0); input_dev->keybit[BIT_WORD(KEY_CAMERA)] = BIT_MASK(KEY_CAMERA);
error = input_register_device(cam->input); error = input_register_device(cam->input);
if (error) { if (error) {
...@@ -263,7 +263,7 @@ static void konicawc_unregister_input(struct konicawc *cam) ...@@ -263,7 +263,7 @@ static void konicawc_unregister_input(struct konicawc *cam)
static void konicawc_report_buttonstat(struct konicawc *cam) static void konicawc_report_buttonstat(struct konicawc *cam)
{ {
if (cam->input) { if (cam->input) {
input_report_key(cam->input, BTN_0, cam->buttonsts); input_report_key(cam->input, KEY_CAMERA, cam->buttonsts);
input_sync(cam->input); input_sync(cam->input);
} }
} }
......
...@@ -103,7 +103,7 @@ static void qcm_register_input(struct qcm *cam, struct usb_device *dev) ...@@ -103,7 +103,7 @@ static void qcm_register_input(struct qcm *cam, struct usb_device *dev)
input_dev->dev.parent = &dev->dev; input_dev->dev.parent = &dev->dev;
input_dev->evbit[0] = BIT_MASK(EV_KEY); input_dev->evbit[0] = BIT_MASK(EV_KEY);
input_dev->keybit[BIT_WORD(BTN_0)] = BIT_MASK(BTN_0); input_dev->keybit[BIT_WORD(KEY_CAMERA)] = BIT_MASK(KEY_CAMERA);
error = input_register_device(cam->input); error = input_register_device(cam->input);
if (error) { if (error) {
...@@ -126,7 +126,7 @@ static void qcm_unregister_input(struct qcm *cam) ...@@ -126,7 +126,7 @@ static void qcm_unregister_input(struct qcm *cam)
static void qcm_report_buttonstat(struct qcm *cam) static void qcm_report_buttonstat(struct qcm *cam)
{ {
if (cam->input) { if (cam->input) {
input_report_key(cam->input, BTN_0, cam->button_sts); input_report_key(cam->input, KEY_CAMERA, cam->button_sts);
input_sync(cam->input); input_sync(cam->input);
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment