V4L/DVB (11960): v4l: generate KEY_CAMERA instead of BTN_0 key events on input devices
authorLennart Poettering <mzxreary@0pointer.de>
Thu, 11 Jun 2009 14:19:33 +0000 (11:19 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Tue, 16 Jun 2009 22:07:38 +0000 (19:07 -0300)
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: Lennart Poettering <mzxreary@0pointer.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Douglas Schilling Landgraf <dougsland@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/pwc/pwc-if.c
drivers/media/video/usbvideo/konicawc.c
drivers/media/video/usbvideo/quickcam_messenger.c

index 7c542caf248e40ff1647bf0b4c6d6345448affd5..519a965de23ce955737ca6b4d60fb11c818dc619 100644 (file)
@@ -601,7 +601,7 @@ static void pwc_snapshot_button(struct pwc_device *pdev, int down)
 
 #ifdef CONFIG_USB_PWC_INPUT_EVDEV
        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);
        }
 #endif
@@ -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);
        pdev->button_dev->dev.parent = &pdev->udev->dev;
        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);
        if (rc) {
index 900ec2129ca16a283ec351ec3efd4f1ee9827144..31d57f2d09e1ba5d39be1e6296eff2414c994e7b 100644 (file)
@@ -240,7 +240,7 @@ static void konicawc_register_input(struct konicawc *cam, struct usb_device *dev
        input_dev->dev.parent = &dev->dev;
 
        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);
        if (error) {
@@ -263,7 +263,7 @@ static void konicawc_unregister_input(struct konicawc *cam)
 static void konicawc_report_buttonstat(struct konicawc *cam)
 {
        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);
        }
 }
index fd112f0b9d35e7082b113c37ca549c59d547c546..803d3e4e29a20316ccbe14d9c4aa0f5cb6961099 100644 (file)
@@ -103,7 +103,7 @@ static void qcm_register_input(struct qcm *cam, struct usb_device *dev)
        input_dev->dev.parent = &dev->dev;
 
        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);
        if (error) {
@@ -126,7 +126,7 @@ static void qcm_unregister_input(struct qcm *cam)
 static void qcm_report_buttonstat(struct qcm *cam)
 {
        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);
        }
 }