mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-19 20:34:20 +08:00
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: 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>
This commit is contained in:
parent
6f4d72392d
commit
bcd3e4b319
@ -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) {
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user