diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-08-29 21:03:47 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-09-12 11:19:49 -0400 |
commit | a4c1cbc7819e890d4c2bc2b79b6cbf0fd9cad699 (patch) | |
tree | a3ad52e6b36c7fd6c23bfe93c60e46eca1dd05dc /drivers/media | |
parent | b77f0a76304dae754003b0a84fb4f66bf9934c97 (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>
Diffstat (limited to 'drivers/media')
-rw-r--r-- | drivers/media/dvb/dvb-usb/dvb-usb-remote.c | 13 |
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 | ||