Merge branch 'drm-intel-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/ickle...
[pandora-kernel.git] / drivers / media / IR / ir-keytable.c
index c06b4d5..f60107c 100644 (file)
@@ -325,9 +325,9 @@ static int ir_setkeytable(struct ir_input_dev *ir_dev,
 static unsigned int ir_lookup_by_scancode(const struct ir_scancode_table *rc_tab,
                                          unsigned int scancode)
 {
-       unsigned int start = 0;
-       unsigned int end = rc_tab->len - 1;
-       unsigned int mid;
+       int start = 0;
+       int end = rc_tab->len - 1;
+       int mid;
 
        while (start <= end) {
                mid = (start + end) / 2;
@@ -389,6 +389,8 @@ static int ir_getkeycode(struct input_dev *dev,
        ke->len = sizeof(entry->scancode);
        memcpy(ke->scancode, &entry->scancode, sizeof(entry->scancode));
 
+       retval = 0;
+
 out:
        spin_unlock_irqrestore(&rc_tab->lock, flags);
        return retval;
@@ -435,7 +437,7 @@ EXPORT_SYMBOL_GPL(ir_g_keycode_from_table);
  * This routine is used to signal that a key has been released on the
  * remote control. It reports a keyup input event via input_report_key().
  */
-static void ir_keyup(struct ir_input_dev *ir)
+void ir_keyup(struct ir_input_dev *ir)
 {
        if (!ir->keypressed)
                return;
@@ -445,6 +447,7 @@ static void ir_keyup(struct ir_input_dev *ir)
        input_sync(ir->input_dev);
        ir->keypressed = false;
 }
+EXPORT_SYMBOL_GPL(ir_keyup);
 
 /**
  * ir_timer_keyup() - generates a keyup event after a timeout
@@ -640,6 +643,10 @@ int __ir_input_register(struct input_dev *input_dev,
                                goto out_event;
                }
 
+       rc = ir_register_input(input_dev);
+       if (rc < 0)
+               goto out_event;
+
        IR_dprintk(1, "Registered input device on %s for %s remote%s.\n",
                   driver_name, rc_tab->name,
                   (ir_dev->props && ir_dev->props->driver_type == RC_DRIVER_IR_RAW) ?