[PATCH] dvb: usb: IR input fixes
authorPatrick Boettcher <pb@linuxtv.org>
Fri, 8 Jul 2005 00:58:24 +0000 (17:58 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Fri, 8 Jul 2005 01:24:02 +0000 (18:24 -0700)
o fixed usage of the correct number of events in keymapping-array
o better place for return

Signed-off-by: Patrick Boettcher <pb@linuxtv.org>
Signed-off-by: Johannes Stezenbach <js@linuxtv.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/media/dvb/dvb-usb/dvb-usb-remote.c

index f4038bf..fc7800f 100644 (file)
@@ -39,7 +39,7 @@ static void dvb_usb_read_remote_control(void *data)
                        d->last_event = event;
                case REMOTE_KEY_REPEAT:
                        deb_rc("key repeated\n");
-                       input_event(&d->rc_input_dev, EV_KEY, event, 1);
+                       input_event(&d->rc_input_dev, EV_KEY, d->last_event, 1);
                        input_event(&d->rc_input_dev, EV_KEY, d->last_event, 0);
                        input_sync(&d->rc_input_dev);
                        break;
@@ -160,12 +160,12 @@ int dvb_usb_nec_rc_key_to_event(struct dvb_usb_device *d,
                                break;
                        }
                        /* See if we can match the raw key code. */
-                       for (i = 0; i < sizeof(keymap)/sizeof(struct dvb_usb_rc_key); i++)
+                       for (i = 0; i < d->props.rc_key_map_size; i++)
                                if (keymap[i].custom == keybuf[1] &&
                                        keymap[i].data == keybuf[3]) {
                                        *event = keymap[i].event;
                                        *state = REMOTE_KEY_PRESSED;
-                                       break;
+                                       return 0;
                                }
                        deb_err("key mapping failed - no appropriate key found in keymapping\n");
                        break;