From: Greg Kroah-Hartman Date: Tue, 15 Nov 2016 16:47:29 +0000 (+0100) Subject: 4.4-stable patches X-Git-Tag: v4.4.33~18 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=643ca98ddcb86874c0c03ad3a3e958e3d7a433e4;p=thirdparty%2Fkernel%2Fstable-queue.git 4.4-stable patches added patches: dib0700-fix-nec-repeat-handling.patch --- diff --git a/queue-4.4/dib0700-fix-nec-repeat-handling.patch b/queue-4.4/dib0700-fix-nec-repeat-handling.patch new file mode 100644 index 00000000000..60dbd895a0a --- /dev/null +++ b/queue-4.4/dib0700-fix-nec-repeat-handling.patch @@ -0,0 +1,54 @@ +From ba13e98f2cebd55a3744c5ffaa08f9dca73bf521 Mon Sep 17 00:00:00 2001 +From: Sean Young +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 + +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 +Tested-by: Sean Young +Signed-off-by: Arnd Bergmann +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + 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) { diff --git a/queue-4.4/series b/queue-4.4/series index d393108446c..935f72eef8a 100644 --- a/queue-4.4/series +++ b/queue-4.4/series @@ -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