aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm2708/patches-4.4/0428-fix-auto-sense-in-lirc_rpi-driver.patch
diff options
context:
space:
mode:
authorÁlvaro Fernández Rojas <noltari@gmail.com>2016-12-02 11:50:26 +0100
committerÁlvaro Fernández Rojas <noltari@gmail.com>2016-12-04 12:32:04 +0100
commit011f2c26f1b62e309f2eac6a3101bfe0a3c76c7e (patch)
treebe53d4f11f7625508ee3aea9889e854ab5b5f263 /target/linux/brcm2708/patches-4.4/0428-fix-auto-sense-in-lirc_rpi-driver.patch
parent4257f6548b9480cdb436115b63d5c134c5e91303 (diff)
downloadupstream-011f2c26f1b62e309f2eac6a3101bfe0a3c76c7e.tar.gz
upstream-011f2c26f1b62e309f2eac6a3101bfe0a3c76c7e.tar.bz2
upstream-011f2c26f1b62e309f2eac6a3101bfe0a3c76c7e.zip
brcm2708: update linux 4.4 patches to latest version
As usual these patches were extracted and rebased from the raspberry pi repo: https://github.com/raspberrypi/linux/tree/rpi-4.4.y Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Diffstat (limited to 'target/linux/brcm2708/patches-4.4/0428-fix-auto-sense-in-lirc_rpi-driver.patch')
-rw-r--r--target/linux/brcm2708/patches-4.4/0428-fix-auto-sense-in-lirc_rpi-driver.patch45
1 files changed, 45 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-4.4/0428-fix-auto-sense-in-lirc_rpi-driver.patch b/target/linux/brcm2708/patches-4.4/0428-fix-auto-sense-in-lirc_rpi-driver.patch
new file mode 100644
index 0000000000..3d083516b2
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.4/0428-fix-auto-sense-in-lirc_rpi-driver.patch
@@ -0,0 +1,45 @@
+From 413e42754e61620eb75e0bd632c697b89ff0ffb9 Mon Sep 17 00:00:00 2001
+From: Ingo Kresse <ingo.kresse@gmail.com>
+Date: Fri, 29 Jul 2016 22:50:21 +0000
+Subject: [PATCH] fix auto-sense in lirc_rpi driver
+
+On a Raspberry Pi 2, the lirc_rpi driver might receive spurious
+interrupts and change it's low-active / high-active setting.
+When this happens, the IR remote control stops working.
+
+This patch disables this auto-detection if the 'sense' parameter
+was set in the device tree, making the driver robust to such
+spurious interrupts.
+---
+ drivers/staging/media/lirc/lirc_rpi.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+--- a/drivers/staging/media/lirc/lirc_rpi.c
++++ b/drivers/staging/media/lirc/lirc_rpi.c
+@@ -79,6 +79,7 @@ static bool invert = 0;
+
+ struct gpio_chip *gpiochip;
+ static int irq_num;
++static int auto_sense = 1;
+
+ /* forward declarations */
+ static long send_pulse(unsigned long length);
+@@ -279,7 +280,9 @@ static irqreturn_t irq_handler(int i, vo
+ * detecting pulse while this
+ * MUST be a space!
+ */
+- sense = sense ? 0 : 1;
++ if (auto_sense) {
++ sense = sense ? 0 : 1;
++ }
+ }
+ } else {
+ data = (int) (deltv*1000000 +
+@@ -417,6 +420,7 @@ static int init_port(void)
+ printk(KERN_INFO LIRC_DRIVER_NAME
+ ": manually using active %s receiver on GPIO pin %d\n",
+ sense ? "low" : "high", gpio_in_pin);
++ auto_sense = 0;
+ }
+
+ return 0;