diff --git a/packages/linux/patches/default/linux-999-improve-ir-timeout-handling.patch b/packages/linux/patches/default/linux-999-improve-ir-timeout-handling.patch index c8c753064f..0e20699a6e 100644 --- a/packages/linux/patches/default/linux-999-improve-ir-timeout-handling.patch +++ b/packages/linux/patches/default/linux-999-improve-ir-timeout-handling.patch @@ -1,7 +1,7 @@ -From df4fa9f4fa87409253bdced78e2cc2b3bc76b253 Mon Sep 17 00:00:00 2001 +From f3ca010f8a1cced4049fb1b6cf522bac4e778d8c Mon Sep 17 00:00:00 2001 From: Sean Young Date: Fri, 23 Mar 2018 16:47:37 -0400 -Subject: [PATCH 01/14] media: rc: set timeout to smallest value required by +Subject: [PATCH 01/13] media: rc: set timeout to smallest value required by enabled protocols The longer the IR timeout, the longer the rc device waits until delivering @@ -30,7 +30,7 @@ Signed-off-by: Mauro Carvalho Chehab 13 files changed, 47 insertions(+), 7 deletions(-) diff --git a/drivers/media/rc/ir-imon-decoder.c b/drivers/media/rc/ir-imon-decoder.c -index a1ff06a26542..52ea3b2fda74 100644 +index a1ff06a..52ea3b2 100644 --- a/drivers/media/rc/ir-imon-decoder.c +++ b/drivers/media/rc/ir-imon-decoder.c @@ -170,6 +170,7 @@ static struct ir_raw_handler imon_handler = { @@ -42,7 +42,7 @@ index a1ff06a26542..52ea3b2fda74 100644 static int __init ir_imon_decode_init(void) diff --git a/drivers/media/rc/ir-jvc-decoder.c b/drivers/media/rc/ir-jvc-decoder.c -index 8cb68ae43282..5706cfe60027 100644 +index 8cb68ae..5706cfe 100644 --- a/drivers/media/rc/ir-jvc-decoder.c +++ b/drivers/media/rc/ir-jvc-decoder.c @@ -213,6 +213,7 @@ static struct ir_raw_handler jvc_handler = { @@ -54,10 +54,10 @@ index 8cb68ae43282..5706cfe60027 100644 static int __init ir_jvc_decode_init(void) diff --git a/drivers/media/rc/ir-mce_kbd-decoder.c b/drivers/media/rc/ir-mce_kbd-decoder.c -index c110984ca671..05f2a36769c0 100644 +index 5478fe0..fa5ce51 100644 --- a/drivers/media/rc/ir-mce_kbd-decoder.c +++ b/drivers/media/rc/ir-mce_kbd-decoder.c -@@ -475,6 +475,7 @@ static struct ir_raw_handler mce_kbd_handler = { +@@ -477,6 +477,7 @@ static struct ir_raw_handler mce_kbd_handler = { .raw_register = ir_mce_kbd_register, .raw_unregister = ir_mce_kbd_unregister, .carrier = 36000, @@ -66,7 +66,7 @@ index c110984ca671..05f2a36769c0 100644 static int __init ir_mce_kbd_decode_init(void) diff --git a/drivers/media/rc/ir-nec-decoder.c b/drivers/media/rc/ir-nec-decoder.c -index 21647b809e6f..6a8973ae3684 100644 +index 21647b8..6a8973a 100644 --- a/drivers/media/rc/ir-nec-decoder.c +++ b/drivers/media/rc/ir-nec-decoder.c @@ -253,6 +253,7 @@ static struct ir_raw_handler nec_handler = { @@ -78,7 +78,7 @@ index 21647b809e6f..6a8973ae3684 100644 static int __init ir_nec_decode_init(void) diff --git a/drivers/media/rc/ir-rc5-decoder.c b/drivers/media/rc/ir-rc5-decoder.c -index 74d3b859c3a2..cbfaadbee8fa 100644 +index 74d3b85..cbfaadb 100644 --- a/drivers/media/rc/ir-rc5-decoder.c +++ b/drivers/media/rc/ir-rc5-decoder.c @@ -274,6 +274,7 @@ static struct ir_raw_handler rc5_handler = { @@ -90,7 +90,7 @@ index 74d3b859c3a2..cbfaadbee8fa 100644 static int __init ir_rc5_decode_init(void) diff --git a/drivers/media/rc/ir-rc6-decoder.c b/drivers/media/rc/ir-rc6-decoder.c -index 8314da32453f..66e07109f6fc 100644 +index 8314da3..66e0710 100644 --- a/drivers/media/rc/ir-rc6-decoder.c +++ b/drivers/media/rc/ir-rc6-decoder.c @@ -394,6 +394,7 @@ static struct ir_raw_handler rc6_handler = { @@ -102,7 +102,7 @@ index 8314da32453f..66e07109f6fc 100644 static int __init ir_rc6_decode_init(void) diff --git a/drivers/media/rc/ir-sanyo-decoder.c b/drivers/media/rc/ir-sanyo-decoder.c -index 4efe6db5376a..dd6ee1e339d6 100644 +index 4efe6db..dd6ee1e 100644 --- a/drivers/media/rc/ir-sanyo-decoder.c +++ b/drivers/media/rc/ir-sanyo-decoder.c @@ -210,6 +210,7 @@ static struct ir_raw_handler sanyo_handler = { @@ -114,7 +114,7 @@ index 4efe6db5376a..dd6ee1e339d6 100644 static int __init ir_sanyo_decode_init(void) diff --git a/drivers/media/rc/ir-sharp-decoder.c b/drivers/media/rc/ir-sharp-decoder.c -index 6a38c50566a4..f96e0c992eed 100644 +index 6a38c50..f96e0c9 100644 --- a/drivers/media/rc/ir-sharp-decoder.c +++ b/drivers/media/rc/ir-sharp-decoder.c @@ -226,6 +226,7 @@ static struct ir_raw_handler sharp_handler = { @@ -126,7 +126,7 @@ index 6a38c50566a4..f96e0c992eed 100644 static int __init ir_sharp_decode_init(void) diff --git a/drivers/media/rc/ir-sony-decoder.c b/drivers/media/rc/ir-sony-decoder.c -index 6764ec9de646..5065c081238d 100644 +index 6764ec9..5065c08 100644 --- a/drivers/media/rc/ir-sony-decoder.c +++ b/drivers/media/rc/ir-sony-decoder.c @@ -224,6 +224,7 @@ static struct ir_raw_handler sony_handler = { @@ -138,7 +138,7 @@ index 6764ec9de646..5065c081238d 100644 static int __init ir_sony_decode_init(void) diff --git a/drivers/media/rc/ir-xmp-decoder.c b/drivers/media/rc/ir-xmp-decoder.c -index 58b47af1a763..c965f51df1c1 100644 +index 58b47af..c965f51 100644 --- a/drivers/media/rc/ir-xmp-decoder.c +++ b/drivers/media/rc/ir-xmp-decoder.c @@ -199,6 +199,7 @@ static int ir_xmp_decode(struct rc_dev *dev, struct ir_raw_event ev) @@ -150,7 +150,7 @@ index 58b47af1a763..c965f51df1c1 100644 static int __init ir_xmp_decode_init(void) diff --git a/drivers/media/rc/rc-core-priv.h b/drivers/media/rc/rc-core-priv.h -index e0e6a17460f6..f78551344eca 100644 +index e0e6a17..f785513 100644 --- a/drivers/media/rc/rc-core-priv.h +++ b/drivers/media/rc/rc-core-priv.h @@ -37,6 +37,7 @@ struct ir_raw_handler { @@ -162,7 +162,7 @@ index e0e6a17460f6..f78551344eca 100644 /* These two should only be used by the mce kbd decoder */ int (*raw_register)(struct rc_dev *dev); diff --git a/drivers/media/rc/rc-ir-raw.c b/drivers/media/rc/rc-ir-raw.c -index 374f83105a23..22e44c8f16fd 100644 +index 374f831..22e44c8 100644 --- a/drivers/media/rc/rc-ir-raw.c +++ b/drivers/media/rc/rc-ir-raw.c @@ -233,7 +233,36 @@ ir_raw_get_allowed_protocols(void) @@ -204,7 +204,7 @@ index 374f83105a23..22e44c8f16fd 100644 } diff --git a/drivers/media/rc/rc-main.c b/drivers/media/rc/rc-main.c -index b67be33bd62f..6a720e9c7aa8 100644 +index cea7b2d..8cd7a26 100644 --- a/drivers/media/rc/rc-main.c +++ b/drivers/media/rc/rc-main.c @@ -1241,6 +1241,9 @@ static ssize_t store_protocols(struct device *device, @@ -248,13 +248,13 @@ index b67be33bd62f..6a720e9c7aa8 100644 set_bit(EV_REP, dev->input_dev->evbit); set_bit(EV_MSC, dev->input_dev->evbit); -- -2.11.0 +2.14.1 -From cfff3db62aa2d6bc9860f9785cdacdaa83c7f278 Mon Sep 17 00:00:00 2001 +From ef6ca369163f1b5d4a838bfbcd373dec8377f653 Mon Sep 17 00:00:00 2001 From: Sean Young Date: Fri, 23 Mar 2018 16:59:52 -0400 -Subject: [PATCH 02/14] media: rc: add ioctl to get the current timeout +Subject: [PATCH 02/13] media: rc: add ioctl to get the current timeout Since the kernel now modifies the timeout, make it possible to retrieve the current value. @@ -269,7 +269,7 @@ Signed-off-by: Mauro Carvalho Chehab 4 files changed, 23 insertions(+), 5 deletions(-) diff --git a/Documentation/media/uapi/rc/lirc-func.rst b/Documentation/media/uapi/rc/lirc-func.rst -index ddb4620de294..9656423a3f28 100644 +index ddb4620..9656423 100644 --- a/Documentation/media/uapi/rc/lirc-func.rst +++ b/Documentation/media/uapi/rc/lirc-func.rst @@ -17,6 +17,7 @@ LIRC Function Reference @@ -281,7 +281,7 @@ index ddb4620de294..9656423a3f28 100644 lirc-set-rec-carrier lirc-set-rec-carrier-range diff --git a/Documentation/media/uapi/rc/lirc-set-rec-timeout.rst b/Documentation/media/uapi/rc/lirc-set-rec-timeout.rst -index b3e16bbdbc90..a833a6a4c25a 100644 +index b3e16bb..a833a6a 100644 --- a/Documentation/media/uapi/rc/lirc-set-rec-timeout.rst +++ b/Documentation/media/uapi/rc/lirc-set-rec-timeout.rst @@ -1,19 +1,23 @@ @@ -322,7 +322,7 @@ index b3e16bbdbc90..a833a6a4c25a 100644 If supported by the hardware, setting it to 0 disables all hardware timeouts and data should be reported as soon as possible. If the exact value diff --git a/drivers/media/rc/lirc_dev.c b/drivers/media/rc/lirc_dev.c -index 24e9fbb80e81..17f40c8e939f 100644 +index 24e9fbb..17f40c8 100644 --- a/drivers/media/rc/lirc_dev.c +++ b/drivers/media/rc/lirc_dev.c @@ -575,6 +575,13 @@ static long ir_lirc_ioctl(struct file *file, unsigned int cmd, @@ -340,30 +340,30 @@ index 24e9fbb80e81..17f40c8e939f 100644 if (!dev->timeout) ret = -ENOTTY; diff --git a/include/uapi/linux/lirc.h b/include/uapi/linux/lirc.h -index f189931042a7..6b319581882f 100644 +index f189931..6b31958 100644 --- a/include/uapi/linux/lirc.h +++ b/include/uapi/linux/lirc.h -@@ -134,6 +134,12 @@ +@@ -133,6 +133,12 @@ + #define LIRC_SET_WIDEBAND_RECEIVER _IOW('i', 0x00000023, __u32) - /* ++/* + * Return the recording timeout, which is either set by + * the ioctl LIRC_SET_REC_TIMEOUT or by the kernel after setting the protocols. + */ +#define LIRC_GET_REC_TIMEOUT _IOR('i', 0x00000024, __u32) + -+/* + /* * struct lirc_scancode - decoded scancode with protocol for use with * LIRC_MODE_SCANCODE - * -- -2.11.0 +2.14.1 -From cb1cedbe3615b2ff39e63cb59943d1f22f2d40ac Mon Sep 17 00:00:00 2001 +From 840d6701d0e1650cfc69bc0af79b983c4674d8c0 Mon Sep 17 00:00:00 2001 From: Sean Young Date: Sat, 24 Mar 2018 08:02:48 -0400 -Subject: [PATCH 03/14] media: rc: per-protocol repeat period and minimum keyup +Subject: [PATCH 03/13] media: rc: per-protocol repeat period and minimum keyup timer Each IR protocol has its own repeat period. We can minimise the keyup @@ -383,7 +383,7 @@ Signed-off-by: Mauro Carvalho Chehab 3 files changed, 31 insertions(+), 29 deletions(-) diff --git a/drivers/media/cec/cec-core.c b/drivers/media/cec/cec-core.c -index b0c87f9ea08f..b278ab90b387 100644 +index b0c87f9..b278ab9 100644 --- a/drivers/media/cec/cec-core.c +++ b/drivers/media/cec/cec-core.c @@ -322,7 +322,7 @@ struct cec_adapter *cec_allocate_adapter(const struct cec_adap_ops *ops, @@ -396,7 +396,7 @@ index b0c87f9ea08f..b278ab90b387 100644 return adap; } diff --git a/drivers/media/rc/lirc_dev.c b/drivers/media/rc/lirc_dev.c -index 17f40c8e939f..19660f9757e1 100644 +index 17f40c8..19660f9 100644 --- a/drivers/media/rc/lirc_dev.c +++ b/drivers/media/rc/lirc_dev.c @@ -583,7 +583,7 @@ static long ir_lirc_ioctl(struct file *file, unsigned int cmd, @@ -409,7 +409,7 @@ index 17f40c8e939f..19660f9757e1 100644 else fh->send_timeout_reports = !!val; diff --git a/drivers/media/rc/rc-main.c b/drivers/media/rc/rc-main.c -index 6a720e9c7aa8..9f4df60f62e1 100644 +index 8cd7a26..3b11241 100644 --- a/drivers/media/rc/rc-main.c +++ b/drivers/media/rc/rc-main.c @@ -26,50 +26,50 @@ static const struct { @@ -524,13 +524,13 @@ index 6a720e9c7aa8..9f4df60f62e1 100644 timer_setup(&dev->timer_repeat, ir_timer_repeat, 0); -- -2.11.0 +2.14.1 -From 20d8ec0acdf9788ae6c3a1317cddab769032d00d Mon Sep 17 00:00:00 2001 +From 62a0d8ca1d2ee90ce57d6f1700e011ec2ec50c92 Mon Sep 17 00:00:00 2001 From: Sean Young Date: Sun, 25 Mar 2018 11:45:40 -0400 -Subject: [PATCH 04/14] media: rc: mce_kbd decoder: low timeout values cause +Subject: [PATCH 04/13] media: rc: mce_kbd decoder: low timeout values cause double keydowns The mce keyboard repeats pressed keys every 100ms. If the IR timeout @@ -548,10 +548,10 @@ Signed-off-by: Mauro Carvalho Chehab 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/drivers/media/rc/ir-mce_kbd-decoder.c b/drivers/media/rc/ir-mce_kbd-decoder.c -index 05f2a36769c0..9d609dca6e2b 100644 +index fa5ce51..03d0f7e 100644 --- a/drivers/media/rc/ir-mce_kbd-decoder.c +++ b/drivers/media/rc/ir-mce_kbd-decoder.c -@@ -322,11 +322,13 @@ static int ir_mce_kbd_decode(struct rc_dev *dev, struct ir_raw_event ev) +@@ -324,11 +324,13 @@ static int ir_mce_kbd_decode(struct rc_dev *dev, struct ir_raw_event ev) scancode = data->body & 0xffff; dev_dbg(&dev->dev, "keyboard data 0x%08x\n", data->body); @@ -571,13 +571,13 @@ index 05f2a36769c0..9d609dca6e2b 100644 ir_mce_kbd_process_keyboard_data(dev, scancode); lsc.rc_proto = RC_PROTO_MCIR2_KBD; -- -2.11.0 +2.14.1 -From f237198b260ea1891437f991178657a0bf4de43d Mon Sep 17 00:00:00 2001 +From 109b96feab8cdb9660aa8f5c18fe019671c38949 Mon Sep 17 00:00:00 2001 From: Sean Young Date: Sat, 7 Apr 2018 17:41:17 -0400 -Subject: [PATCH 05/14] media: rc: mce_kbd protocol encodes two scancodes +Subject: [PATCH 05/13] media: rc: mce_kbd protocol encodes two scancodes If two keys are pressed, then both keys are encoded in the scancode. This makes the mce keyboard more responsive. @@ -590,10 +590,10 @@ Signed-off-by: Mauro Carvalho Chehab 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/drivers/media/rc/ir-mce_kbd-decoder.c b/drivers/media/rc/ir-mce_kbd-decoder.c -index 9d609dca6e2b..f94e89ebc724 100644 +index 03d0f7e..002b832 100644 --- a/drivers/media/rc/ir-mce_kbd-decoder.c +++ b/drivers/media/rc/ir-mce_kbd-decoder.c -@@ -147,13 +147,14 @@ static enum mce_kbd_mode mce_kbd_mode(struct mce_kbd_dec *data) +@@ -149,13 +149,14 @@ static enum mce_kbd_mode mce_kbd_mode(struct mce_kbd_dec *data) static void ir_mce_kbd_process_keyboard_data(struct rc_dev *dev, u32 scancode) { struct mce_kbd_dec *data = &dev->raw->mce_kbd; @@ -612,7 +612,7 @@ index 9d609dca6e2b..f94e89ebc724 100644 for (i = 0; i < 7; i++) { maskcode = kbd_keycodes[MCIR2_MASK_KEYS_START + i]; -@@ -164,10 +165,12 @@ static void ir_mce_kbd_process_keyboard_data(struct rc_dev *dev, u32 scancode) +@@ -166,10 +167,12 @@ static void ir_mce_kbd_process_keyboard_data(struct rc_dev *dev, u32 scancode) input_report_key(data->idev, maskcode, keystate); } @@ -629,7 +629,7 @@ index 9d609dca6e2b..f94e89ebc724 100644 for (i = 0; i < MCIR2_MASK_KEYS_START; i++) input_report_key(data->idev, kbd_keycodes[i], 0); } -@@ -319,7 +322,7 @@ static int ir_mce_kbd_decode(struct rc_dev *dev, struct ir_raw_event ev) +@@ -321,7 +324,7 @@ static int ir_mce_kbd_decode(struct rc_dev *dev, struct ir_raw_event ev) switch (data->wanted_bits) { case MCIR2_KEYBOARD_NBITS: @@ -639,7 +639,7 @@ index 9d609dca6e2b..f94e89ebc724 100644 data->body); if (scancode) { diff --git a/drivers/media/rc/rc-main.c b/drivers/media/rc/rc-main.c -index 9f4df60f62e1..b7071bde670a 100644 +index 3b11241..2e222d9 100644 --- a/drivers/media/rc/rc-main.c +++ b/drivers/media/rc/rc-main.c @@ -51,7 +51,7 @@ static const struct { @@ -652,46 +652,13 @@ index 9f4df60f62e1..b7071bde670a 100644 .scancode_bits = 0x1fffff, .repeat_period = 100 }, [RC_PROTO_RC6_0] = { .name = "rc-6-0", -- -2.11.0 +2.14.1 -From 6b911bbe130adae94296b099441b82914784ee94 Mon Sep 17 00:00:00 2001 -From: Sean Young -Date: Sun, 8 Apr 2018 06:36:40 -0400 -Subject: [PATCH 06/14] media: rc: mce_kbd decoder: fix stuck keys - -The MCE Remote sends a 0 scancode when keys are released. If this is not -received or decoded, then keys can get "stuck"; the keyup event is not -sent since the input_sync() is missing from the timeout handler. - -Cc: stable@vger.kernel.org -Signed-off-by: Sean Young -Signed-off-by: Mauro Carvalho Chehab ---- - drivers/media/rc/ir-mce_kbd-decoder.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/drivers/media/rc/ir-mce_kbd-decoder.c b/drivers/media/rc/ir-mce_kbd-decoder.c -index f94e89ebc724..002b8323ae69 100644 ---- a/drivers/media/rc/ir-mce_kbd-decoder.c -+++ b/drivers/media/rc/ir-mce_kbd-decoder.c -@@ -130,6 +130,8 @@ static void mce_kbd_rx_timeout(struct timer_list *t) - - for (i = 0; i < MCIR2_MASK_KEYS_START; i++) - input_report_key(raw->mce_kbd.idev, kbd_keycodes[i], 0); -+ -+ input_sync(raw->mce_kbd.idev); - } - - static enum mce_kbd_mode mce_kbd_mode(struct mce_kbd_dec *data) --- -2.11.0 - - -From 2734db8383a3761d32f96bef9d173a9390f753d9 Mon Sep 17 00:00:00 2001 +From 83fd4cbbb5e3f6b1a27a2098ae4e4ed53abcdc4a Mon Sep 17 00:00:00 2001 From: Sean Young Date: Wed, 11 Apr 2018 11:02:16 -0400 -Subject: [PATCH 07/14] media: rc: mce_kbd decoder: remove superfluous call to +Subject: [PATCH 06/13] media: rc: mce_kbd decoder: remove superfluous call to input_sync There is nothing to sync in this code path. @@ -704,7 +671,7 @@ Signed-off-by: Mauro Carvalho Chehab 1 file changed, 1 deletion(-) diff --git a/drivers/media/rc/ir-mce_kbd-decoder.c b/drivers/media/rc/ir-mce_kbd-decoder.c -index 002b8323ae69..2fc78710a724 100644 +index 002b832..2fc7871 100644 --- a/drivers/media/rc/ir-mce_kbd-decoder.c +++ b/drivers/media/rc/ir-mce_kbd-decoder.c @@ -362,7 +362,6 @@ static int ir_mce_kbd_decode(struct rc_dev *dev, struct ir_raw_event ev) @@ -716,13 +683,13 @@ index 002b8323ae69..2fc78710a724 100644 } -- -2.11.0 +2.14.1 -From b7793b3f5899b82d2527d0fa89c3582c5074436d Mon Sep 17 00:00:00 2001 +From 58e8f06c164bc725c359c9f6dd22f7fb1718768c Mon Sep 17 00:00:00 2001 From: Sean Young Date: Thu, 12 Apr 2018 16:28:39 -0400 -Subject: [PATCH 08/14] media: rc: mce_kbd decoder: fix race condition +Subject: [PATCH 07/13] media: rc: mce_kbd decoder: fix race condition The MCE keyboard sends both key down and key up events. We have a timeout handler mce_kbd_rx_timeout() in case the keyup event is never received; @@ -743,7 +710,7 @@ Signed-off-by: Mauro Carvalho Chehab 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/drivers/media/rc/ir-mce_kbd-decoder.c b/drivers/media/rc/ir-mce_kbd-decoder.c -index 2fc78710a724..9574c3dd90f2 100644 +index 2fc7871..9574c3d 100644 --- a/drivers/media/rc/ir-mce_kbd-decoder.c +++ b/drivers/media/rc/ir-mce_kbd-decoder.c @@ -119,19 +119,25 @@ static void mce_kbd_rx_timeout(struct timer_list *t) @@ -804,7 +771,7 @@ index 2fc78710a724..9574c3dd90f2 100644 input_set_drvdata(idev, mce_kbd); diff --git a/drivers/media/rc/rc-core-priv.h b/drivers/media/rc/rc-core-priv.h -index f78551344eca..07ba77fe6a3b 100644 +index f785513..07ba77f 100644 --- a/drivers/media/rc/rc-core-priv.h +++ b/drivers/media/rc/rc-core-priv.h @@ -105,6 +105,8 @@ struct ir_raw_event_ctrl { @@ -817,13 +784,13 @@ index f78551344eca..07ba77fe6a3b 100644 char name[64]; char phys[64]; -- -2.11.0 +2.14.1 -From c5aeb74f46ec942f4079c36a59724824cb188592 Mon Sep 17 00:00:00 2001 +From c9142eda7fe068269339893a910f2cd2e71dc8a4 Mon Sep 17 00:00:00 2001 From: Sean Young Date: Wed, 18 Apr 2018 05:36:25 -0400 -Subject: [PATCH 09/14] media: rc: mceusb: IR of length 0 means IR timeout, not +Subject: [PATCH 08/13] media: rc: mceusb: IR of length 0 means IR timeout, not reset The last usb packet with IR data will end with 0x80 (MCE_IRDATA_TRAILER). @@ -836,7 +803,7 @@ Signed-off-by: Mauro Carvalho Chehab 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/media/rc/mceusb.c b/drivers/media/rc/mceusb.c -index 69ba57372c05..a1c21903b96c 100644 +index 69ba573..a1c2190 100644 --- a/drivers/media/rc/mceusb.c +++ b/drivers/media/rc/mceusb.c @@ -1182,7 +1182,12 @@ static void mceusb_process_ir_data(struct mceusb_dev *ir, int buf_len) @@ -854,13 +821,13 @@ index 69ba57372c05..a1c21903b96c 100644 ir->pulse_count = 0; } -- -2.11.0 +2.14.1 -From 410a96b5bed5a814ae27129fad5ceda7aa4b4c07 Mon Sep 17 00:00:00 2001 +From 072bc4a62bb580904d43bbc2fbe04d97115a4020 Mon Sep 17 00:00:00 2001 From: Sean Young Date: Sun, 8 Apr 2018 11:06:49 -0400 -Subject: [PATCH 10/14] media: rc: mceusb: allow the timeout to be configurable +Subject: [PATCH 09/13] media: rc: mceusb: allow the timeout to be configurable mceusb devices have a default timeout of 100ms, but this can be changed. @@ -871,7 +838,7 @@ Signed-off-by: Mauro Carvalho Chehab 1 file changed, 22 insertions(+) diff --git a/drivers/media/rc/mceusb.c b/drivers/media/rc/mceusb.c -index a1c21903b96c..5c0bf61fae26 100644 +index a1c2190..5c0bf61 100644 --- a/drivers/media/rc/mceusb.c +++ b/drivers/media/rc/mceusb.c @@ -982,6 +982,25 @@ static int mceusb_set_tx_carrier(struct rc_dev *dev, u32 carrier) @@ -912,13 +879,13 @@ index a1c21903b96c..5c0bf61fae26 100644 rc->s_tx_mask = mceusb_set_tx_mask; rc->s_tx_carrier = mceusb_set_tx_carrier; -- -2.11.0 +2.14.1 -From bb0b2578562412817987efc0aef6e635b789ae63 Mon Sep 17 00:00:00 2001 +From 880ddf029177c5a26889672c67db37572fff36e8 Mon Sep 17 00:00:00 2001 From: Sean Young Date: Wed, 9 May 2018 06:11:28 -0400 -Subject: [PATCH 11/14] media: mceusb: MCE_CMD_SETIRTIMEOUT cause strange +Subject: [PATCH 10/13] media: mceusb: MCE_CMD_SETIRTIMEOUT cause strange behaviour on device If the IR timeout is set on vid 1784 pid 0011, the device starts @@ -932,7 +899,7 @@ Signed-off-by: Mauro Carvalho Chehab 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/drivers/media/rc/mceusb.c b/drivers/media/rc/mceusb.c -index 5c0bf61fae26..1619b748469b 100644 +index 5c0bf61..1619b74 100644 --- a/drivers/media/rc/mceusb.c +++ b/drivers/media/rc/mceusb.c @@ -181,6 +181,7 @@ enum mceusb_model_type { @@ -993,13 +960,13 @@ index 5c0bf61fae26..1619b748469b 100644 rc->s_tx_mask = mceusb_set_tx_mask; rc->s_tx_carrier = mceusb_set_tx_carrier; -- -2.11.0 +2.14.1 -From 9fddaafa32f2fbf5d91e719f4d39208c3b782c3a Mon Sep 17 00:00:00 2001 +From 45bfc4c9f1747c826cb98f477f0a18ebbcdd957d Mon Sep 17 00:00:00 2001 From: Sean Young Date: Thu, 10 May 2018 07:37:51 -0400 -Subject: [PATCH 12/14] media: mceusb: filter out bogus timing irdata of +Subject: [PATCH 11/13] media: mceusb: filter out bogus timing irdata of duration 0 A mceusb device has been observed producing invalid irdata. Proactively @@ -1013,7 +980,7 @@ Signed-off-by: Mauro Carvalho Chehab 1 file changed, 5 insertions(+) diff --git a/drivers/media/rc/mceusb.c b/drivers/media/rc/mceusb.c -index 1619b748469b..1ca49491abc8 100644 +index 1619b74..1ca49491 100644 --- a/drivers/media/rc/mceusb.c +++ b/drivers/media/rc/mceusb.c @@ -1177,6 +1177,11 @@ static void mceusb_process_ir_data(struct mceusb_dev *ir, int buf_len) @@ -1029,13 +996,13 @@ index 1619b748469b..1ca49491abc8 100644 ir->pulse_tunit += rawir.duration; ir->pulse_count++; -- -2.11.0 +2.14.1 -From 1f8b44307727f56f360eb7a43097504fe478e2a9 Mon Sep 17 00:00:00 2001 +From d3f6e4507c2714234a5fac8428b5e5db4514a717 Mon Sep 17 00:00:00 2001 From: Sean Young Date: Thu, 10 May 2018 07:49:49 -0400 -Subject: [PATCH 13/14] media: mceusb: add missing break +Subject: [PATCH 12/13] media: mceusb: add missing break Fallthrough is not intended here. @@ -1046,7 +1013,7 @@ Signed-off-by: Mauro Carvalho Chehab 1 file changed, 1 insertion(+) diff --git a/drivers/media/rc/mceusb.c b/drivers/media/rc/mceusb.c -index 1ca49491abc8..4c0c8008872a 100644 +index 1ca49491..4c0c800 100644 --- a/drivers/media/rc/mceusb.c +++ b/drivers/media/rc/mceusb.c @@ -572,6 +572,7 @@ static int mceusb_cmd_datasize(u8 cmd, u8 subcmd) @@ -1058,13 +1025,13 @@ index 1ca49491abc8..4c0c8008872a 100644 switch (subcmd) { case MCE_CMD_UNKNOWN: -- -2.11.0 +2.14.1 -From 4b6434f8b34298bd30af762265f25feac4fada62 Mon Sep 17 00:00:00 2001 +From e7898b7a6ce902107232cb516d854609d71a9426 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sun, 13 May 2018 07:24:31 -0400 -Subject: [PATCH 14/14] media: rc: ite-cir: lower timeout and extend allowed +Subject: [PATCH 13/13] media: rc: ite-cir: lower timeout and extend allowed timeout range The minimum possible timeout of ite-cir is 8 samples, which is @@ -1090,7 +1057,7 @@ Signed-off-by: Mauro Carvalho Chehab 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/drivers/media/rc/ite-cir.c b/drivers/media/rc/ite-cir.c -index 65e104c7ddfc..de77d22c30a7 100644 +index 65e104c..de77d22 100644 --- a/drivers/media/rc/ite-cir.c +++ b/drivers/media/rc/ite-cir.c @@ -1561,9 +1561,11 @@ static int ite_probe(struct pnp_dev *pdev, const struct pnp_device_id @@ -1109,7 +1076,7 @@ index 65e104c7ddfc..de77d22c30a7 100644 itdev->params.sample_period; rdev->tx_resolution = ITE_BAUDRATE_DIVISOR * diff --git a/drivers/media/rc/ite-cir.h b/drivers/media/rc/ite-cir.h -index 0e8ebc880d1f..9cb24ac01350 100644 +index 0e8ebc8..9cb24ac 100644 --- a/drivers/media/rc/ite-cir.h +++ b/drivers/media/rc/ite-cir.h @@ -154,13 +154,6 @@ struct ite_dev { @@ -1127,5 +1094,5 @@ index 0e8ebc880d1f..9cb24ac01350 100644 #define ITE_BITS_TO_NS(bits, sample_period) \ ((u32) ((bits) * ITE_BAUDRATE_DIVISOR * sample_period)) -- -2.11.0 +2.14.1