[media] rc-core: fix input repeat handling
authorDavid Härdeman <david@hardeman.nu>
Thu, 27 Apr 2017 20:33:58 +0000 (17:33 -0300)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Thu, 18 May 2017 09:18:21 +0000 (06:18 -0300)
The call to input_register_device() needs to take place
before the repeat parameters are set or the input subsystem
repeat handling will be disabled (as was already noted in
the comments in that function).

Cc: stable <stable@vger.kernel.org> # v4.11
Signed-off-by: David Härdeman <david@hardeman.nu>
Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/rc/rc-main.c

index 6ec73357fa474728aa26692533e232ca8e55ee05..802e559cc30e9ab07eb197778971093ce7217f7b 100644 (file)
@@ -1703,6 +1703,16 @@ static int rc_setup_rx_device(struct rc_dev *dev)
        if (dev->close)
                dev->input_dev->close = ir_close;
 
+       dev->input_dev->dev.parent = &dev->dev;
+       memcpy(&dev->input_dev->id, &dev->input_id, sizeof(dev->input_id));
+       dev->input_dev->phys = dev->input_phys;
+       dev->input_dev->name = dev->input_name;
+
+       /* rc_open will be called here */
+       rc = input_register_device(dev->input_dev);
+       if (rc)
+               goto out_table;
+
        /*
         * Default delay of 250ms is too short for some protocols, especially
         * since the timeout is currently set to 250ms. Increase it to 500ms,
@@ -1718,16 +1728,6 @@ static int rc_setup_rx_device(struct rc_dev *dev)
         */
        dev->input_dev->rep[REP_PERIOD] = 125;
 
-       dev->input_dev->dev.parent = &dev->dev;
-       memcpy(&dev->input_dev->id, &dev->input_id, sizeof(dev->input_id));
-       dev->input_dev->phys = dev->input_phys;
-       dev->input_dev->name = dev->input_name;
-
-       /* rc_open will be called here */
-       rc = input_register_device(dev->input_dev);
-       if (rc)
-               goto out_table;
-
        return 0;
 
 out_table: