[lirc] Merge in-kernel decode disable support

Jarod Wilson jwilson at fedoraproject.org
Sun Mar 27 04:10:07 UTC 2011


commit 3b104949ebc43354d265240bdc9e56b1e05aa414
Author: Jarod Wilson <jarod at redhat.com>
Date:   Sun Mar 27 00:08:52 2011 -0400

    Merge in-kernel decode disable support
    
    Signed-off-by: Jarod Wilson <jarod at redhat.com>

 lirc.init |   25 +++++++++++++++++++++++++
 lirc.spec |    1 +
 2 files changed, 26 insertions(+), 0 deletions(-)
---
diff --git a/lirc.init b/lirc.init
old mode 100644
new mode 100755
index 1a32831..a397f8b
--- a/lirc.init
+++ b/lirc.init
@@ -74,6 +74,18 @@ start() {
         echo
     fi
     [ $retval -eq 0 ] && touch $lockfile
+
+    # To prevent double key events w/both in-kernel and lirc decode,
+    # we disable the in-kernel decoding when lircd is started up
+    # successfully
+    if [ $retval -eq 0 ]; then
+        rcs=$(find -L /sys/class/rc/ -maxdepth 2 -name protocols 2> /dev/null)
+        for rc in $rcs
+        do
+            echo lirc > ${rc}
+        done
+    fi
+
     return $retval
 }
 
@@ -92,6 +104,19 @@ stop() {
         echo
     fi
     [ $retval -eq 0 ] && rm -f $lockfile
+
+    # On lircd shutdown, turn all the in-kernel IR decoders back on
+    rcs=$(find -L /sys/class/rc/ -maxdepth 2 -name protocols 2> /dev/null)
+    for rc in $rcs
+    do
+        echo none > ${rc}
+        protos=$(cat ${rc})
+        for p in $protos
+        do
+            echo "+${p}" > ${rc}
+        done
+    done
+
     return $retval
 }
 
diff --git a/lirc.spec b/lirc.spec
index ae952d6..d490423 100644
--- a/lirc.spec
+++ b/lirc.spec
@@ -299,6 +299,7 @@ fi
 %changelog
 * Sat Mar 26 2011 Jarod Wilson <jarod at redhat.com> 0.9.0-1
 - Update to lirc 0.9.0 release
+- Disable in-kernel IR decoding when starting up lircd, reenable on shutdown
 
 * Tue Feb 08 2011 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 0.9.0-0.2.pre1
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild


More information about the scm-commits mailing list