aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@redhat.com>2009-08-29 21:03:47 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-09-12 11:19:49 -0400
commita4c1cbc7819e890d4c2bc2b79b6cbf0fd9cad699 (patch)
treea3ad52e6b36c7fd6c23bfe93c60e46eca1dd05dc
parentb77f0a76304dae754003b0a84fb4f66bf9934c97 (diff)
V4L/DVB (12600): dvb-usb-remote: return KEY_RESERVED if there's free space for new keys
The input subsystem checks if get_keycode works for a scan code. Due to that, we need to return a valid value when there's some space at the table that can be used by a scancode. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--drivers/media/dvb/dvb-usb/dvb-usb-remote.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/media/dvb/dvb-usb/dvb-usb-remote.c b/drivers/media/dvb/dvb-usb/dvb-usb-remote.c
index b6dbc2b538d4..edde87c6aa3a 100644
--- a/drivers/media/dvb/dvb-usb/dvb-usb-remote.c
+++ b/drivers/media/dvb/dvb-usb/dvb-usb-remote.c
@@ -22,6 +22,19 @@ static int dvb_usb_getkeycode(struct input_dev *dev,
22 *keycode = keymap[i].event; 22 *keycode = keymap[i].event;
23 return 0; 23 return 0;
24 } 24 }
25
26 /*
27 * If is there extra space, returns KEY_RESERVED,
28 * otherwise, input core won't let dvb_usb_setkeycode
29 * to work
30 */
31 for (i = 0; i < d->props.rc_key_map_size; i++)
32 if (keymap[i].event == KEY_RESERVED ||
33 keymap[i].event == KEY_UNKNOWN) {
34 *keycode = KEY_RESERVED;
35 return 0;
36 }
37
25 return -EINVAL; 38 return -EINVAL;
26} 39}
27 40