]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.8-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 15 Nov 2016 16:47:51 +0000 (17:47 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 15 Nov 2016 16:47:51 +0000 (17:47 +0100)
added patches:
dib0700-fix-nec-repeat-handling.patch

queue-4.8/dib0700-fix-nec-repeat-handling.patch [new file with mode: 0644]
queue-4.8/series

diff --git a/queue-4.8/dib0700-fix-nec-repeat-handling.patch b/queue-4.8/dib0700-fix-nec-repeat-handling.patch
new file mode 100644 (file)
index 0000000..60dbd89
--- /dev/null
@@ -0,0 +1,54 @@
+From ba13e98f2cebd55a3744c5ffaa08f9dca73bf521 Mon Sep 17 00:00:00 2001
+From: Sean Young <sean@mess.org>
+Date: Thu, 10 Nov 2016 17:44:49 +0100
+Subject: dib0700: fix nec repeat handling
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Sean Young <sean@mess.org>
+
+commit ba13e98f2cebd55a3744c5ffaa08f9dca73bf521 upstream.
+
+When receiving a nec repeat, ensure the correct scancode is repeated
+rather than a random value from the stack.  This removes the need for
+the bogus uninitialized_var() and also fixes the warnings:
+
+    drivers/media/usb/dvb-usb/dib0700_core.c: In function ‘dib0700_rc_urb_completion’:
+    drivers/media/usb/dvb-usb/dib0700_core.c:679: warning: ‘protocol’ may be used uninitialized in this function
+
+[sean addon: So after writing the patch and submitting it, I've bought the
+             hardware on ebay. Without this patch you get random scancodes
+             on nec repeats, which the patch indeed fixes.]
+
+Signed-off-by: Sean Young <sean@mess.org>
+Tested-by: Sean Young <sean@mess.org>
+Signed-off-by: Arnd Bergmann <arnd@arndb.de>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/media/usb/dvb-usb/dib0700_core.c |    5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+--- a/drivers/media/usb/dvb-usb/dib0700_core.c
++++ b/drivers/media/usb/dvb-usb/dib0700_core.c
+@@ -677,7 +677,7 @@ static void dib0700_rc_urb_completion(st
+       struct dvb_usb_device *d = purb->context;
+       struct dib0700_rc_response *poll_reply;
+       enum rc_type protocol;
+-      u32 uninitialized_var(keycode);
++      u32 keycode;
+       u8 toggle;
+       deb_info("%s()\n", __func__);
+@@ -719,7 +719,8 @@ static void dib0700_rc_urb_completion(st
+                   poll_reply->nec.data       == 0x00 &&
+                   poll_reply->nec.not_data   == 0xff) {
+                       poll_reply->data_state = 2;
+-                      break;
++                      rc_repeat(d->rc_dev);
++                      goto resubmit;
+               }
+               if ((poll_reply->nec.data ^ poll_reply->nec.not_data) != 0xff) {
index d393108446c83cf38b405a16084bd8b1bdeb2587..935f72eef8aba931cbedb4fe7a4ef845a94c34fd 100644 (file)
@@ -1,3 +1,4 @@
 alsa-info-return-error-for-invalid-read-write.patch
 alsa-info-limit-the-proc-text-input-size.patch
 asoc-cs4270-fix-dapm-stream-name-mismatch.patch
+dib0700-fix-nec-repeat-handling.patch