diff --git a/packages/linux/patches/3.17.2/linux-999.04-upstream-fixes.patch b/packages/linux/patches/3.17.2/linux-999.04-upstream-fixes.patch new file mode 100644 index 0000000000..fa5253edb3 --- /dev/null +++ b/packages/linux/patches/3.17.2/linux-999.04-upstream-fixes.patch @@ -0,0 +1,55 @@ +From 14edb593338e3811e818aba286237c365f8881a1 Mon Sep 17 00:00:00 2001 +From: Tomas Melin +Date: Tue, 28 Oct 2014 15:43:14 -0300 +Subject: [media] rc-core: fix protocol_change regression in + ir_raw_event_register +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +IR receiver using nuvoton-cir and lirc required additional configuration +steps after upgrade from kernel 3.16 to 3.17-rcX. Bisected regression to +commit da6e162d6a4607362f8478c715c797d84d449f8b ("[media] rc-core: +simplify sysfs code"). + +The regression comes from adding function change_protocol in ir-raw.c. +It changes behaviour so that only the protocol enabled by driver's +map_name will be active after registration. This breaks user space +behaviour, lirc does not get key press signals anymore. + +Enable lirc protocol by default for ir raw decoders to restore original +behaviour. + +Cc: stable@vger.kernel.org # for v3.17 +Signed-off-by: Tomas Melin +Acked-by: David Härdeman +Signed-off-by: Mauro Carvalho Chehab + +diff --git a/drivers/media/rc/rc-ir-raw.c b/drivers/media/rc/rc-ir-raw.c +index e8fff2a..b732ac6 100644 +--- a/drivers/media/rc/rc-ir-raw.c ++++ b/drivers/media/rc/rc-ir-raw.c +@@ -262,7 +262,6 @@ int ir_raw_event_register(struct rc_dev *dev) + return -ENOMEM; + + dev->raw->dev = dev; +- dev->enabled_protocols = ~0; + dev->change_protocol = change_protocol; + rc = kfifo_alloc(&dev->raw->kfifo, + sizeof(struct ir_raw_event) * MAX_IR_EVENT_SIZE, +diff --git a/drivers/media/rc/rc-main.c b/drivers/media/rc/rc-main.c +index a7991c7..8d3b74c 100644 +--- a/drivers/media/rc/rc-main.c ++++ b/drivers/media/rc/rc-main.c +@@ -1421,6 +1421,8 @@ int rc_register_device(struct rc_dev *dev) + + if (dev->change_protocol) { + u64 rc_type = (1 << rc_map->rc_type); ++ if (dev->driver_type == RC_DRIVER_IR_RAW) ++ rc_type |= RC_BIT_LIRC; + rc = dev->change_protocol(dev, &rc_type); + if (rc < 0) + goto out_raw; +-- +cgit v0.10.1 + diff --git a/packages/linux/patches/3.17.2/linux-999.05-upstream-fixes.patch b/packages/linux/patches/3.17.2/linux-999.05-upstream-fixes.patch new file mode 100644 index 0000000000..70b9e87c37 --- /dev/null +++ b/packages/linux/patches/3.17.2/linux-999.05-upstream-fixes.patch @@ -0,0 +1,32 @@ +From cef83483341e258beed49ce78fb2cc0c46ab1757 Mon Sep 17 00:00:00 2001 +From: Mauro Carvalho Chehab +Date: Thu, 30 Oct 2014 06:54:12 -0300 +Subject: [media] rc5-decoder: BZ#85721: Fix RC5-SZ decoding +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Changeset e87b540be2dd broke RC5-SZ decoding, as it forgot to add +the extra bit check for the enabled protocols at the beginning of +the logic. + +Signed-off-by: Mauro Carvalho Chehab +Acked-by: David Härdeman +Signed-off-by: Mauro Carvalho Chehab + +diff --git a/drivers/media/rc/ir-rc5-decoder.c b/drivers/media/rc/ir-rc5-decoder.c +index 2ef7639..84fa6e9 100644 +--- a/drivers/media/rc/ir-rc5-decoder.c ++++ b/drivers/media/rc/ir-rc5-decoder.c +@@ -53,7 +53,7 @@ static int ir_rc5_decode(struct rc_dev *dev, struct ir_raw_event ev) + u32 scancode; + enum rc_type protocol; + +- if (!(dev->enabled_protocols & (RC_BIT_RC5 | RC_BIT_RC5X))) ++ if (!(dev->enabled_protocols & (RC_BIT_RC5 | RC_BIT_RC5X | RC_BIT_RC5_SZ))) + return 0; + + if (!is_timing_event(ev)) { +-- +cgit v0.10.1 + diff --git a/packages/linux/patches/3.17.2/linux-999.06-upstream-fixes.patch b/packages/linux/patches/3.17.2/linux-999.06-upstream-fixes.patch new file mode 100644 index 0000000000..7eb6c7d92f --- /dev/null +++ b/packages/linux/patches/3.17.2/linux-999.06-upstream-fixes.patch @@ -0,0 +1,32 @@ +From d358aefdc0cc92b16ced449f998dbad639db6809 Mon Sep 17 00:00:00 2001 +From: Ulrich Eckhardt +Date: Fri, 10 Oct 2014 13:27:32 -0300 +Subject: [media] imon: fix other RC type protocol support + +With kernel 3.17 the imon remote control for device 15c2:0034 does not +work anymore, which uses the OTHER protocol. Only the front panel +buttons which uses the RC6 protocol are working. + +Adds the missing comparison for the RC_BIT_OTHER. + +Cc: stable@vger.kernel.org # for Kernel 3.17 +Signed-off-by: Ulrich Eckhardt +Signed-off-by: Mauro Carvalho Chehab + +diff --git a/drivers/media/rc/imon.c b/drivers/media/rc/imon.c +index b8837dd..65f80b8 100644 +--- a/drivers/media/rc/imon.c ++++ b/drivers/media/rc/imon.c +@@ -1678,7 +1678,8 @@ static void imon_incoming_packet(struct imon_context *ictx, + if (press_type == 0) + rc_keyup(ictx->rdev); + else { +- if (ictx->rc_type == RC_BIT_RC6_MCE) ++ if (ictx->rc_type == RC_BIT_RC6_MCE || ++ ictx->rc_type == RC_BIT_OTHER) + rc_keydown(ictx->rdev, + ictx->rc_type == RC_BIT_RC6_MCE ? RC_TYPE_RC6_MCE : RC_TYPE_OTHER, + ictx->rc_scancode, ictx->rc_toggle); +-- +cgit v0.10.1 +