summaryrefslogtreecommitdiffstats
path: root/rc-core-fix-repeat-events.patch
diff options
context:
space:
mode:
authorAlec Leamas <leamas.alec@gmail.com>2016-08-25 13:50:07 +0200
committerLaura Abbott <labbott@fedoraproject.org>2016-08-29 14:19:37 -0700
commit2235f17f43ba678238fbfd79aee267625d2650a5 (patch)
tree08627c89c8cb4a75e81e67bb0fc867099b3c91d9 /rc-core-fix-repeat-events.patch
parente0580068215ec10fb7b9749b8f80490d1b601817 (diff)
downloadkernel-2235f17f43ba678238fbfd79aee267625d2650a5.tar.gz
kernel-2235f17f43ba678238fbfd79aee267625d2650a5.tar.xz
kernel-2235f17f43ba678238fbfd79aee267625d2650a5.zip
Add event decoding fix (rhbz 1360688)
[labbott@redhat.com: Add change log and tweak commit message]
Diffstat (limited to 'rc-core-fix-repeat-events.patch')
-rw-r--r--rc-core-fix-repeat-events.patch46
1 files changed, 46 insertions, 0 deletions
diff --git a/rc-core-fix-repeat-events.patch b/rc-core-fix-repeat-events.patch
new file mode 100644
index 000000000..c7bfce282
--- /dev/null
+++ b/rc-core-fix-repeat-events.patch
@@ -0,0 +1,46 @@
+From: "Ole Ernst <olebowle@unknown.net>"
+Date: Sat, 30 Jul 2016 15:19:27 +0200
+Subject: Partly revert "[media] rc-core: allow calling rc_open with device not initialized"
+
+This partly reverts commit 078600f514a12fd763ac84c86af68ef5b5267563.
+
+Due to the relocation of input_register_device() call, holding down a
+button on an IR remote no longer resulted in repeated key down events.
+
+See: http://www.spinics.net/lists/linux-media/msg103384.html
+
+Signed-off-by: Ole Ernst <olebowle@xxxxxxx>
+---
+ drivers/media/rc/rc-main.c | 9 ++++-----
+ 1 file changed, 4 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/media/rc/rc-main.c b/drivers/media/rc/rc-main.c
+index 8e7f292..26fd63b 100644
+--- a/drivers/media/rc/rc-main.c
++++ b/drivers/media/rc/rc-main.c
+@@ -1460,6 +1460,10 @@ int rc_register_device(struct rc_dev *dev)
+ dev->input_dev->phys = dev->input_phys;
+ dev->input_dev->name = dev->input_name;
+
++ 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,
+@@ -1475,11 +1479,6 @@ int rc_register_device(struct rc_dev *dev)
+ */
+ dev->input_dev->rep[REP_PERIOD] = 125;
+
+- /* rc_open will be called here */
+- rc = input_register_device(dev->input_dev);
+- if (rc)
+- goto out_table;
+-
+ path = kobject_get_path(&dev->dev.kobj, GFP_KERNEL);
+ dev_info(&dev->dev, "%s as %s\n",
+ dev->input_name ?: "Unspecified device", path ?: "N/A");
+--
+2.9.0
+