From 3b104949ebc43354d265240bdc9e56b1e05aa414 Mon Sep 17 00:00:00 2001 From: Jarod Wilson Date: Sun, 27 Mar 2011 00:08:52 -0400 Subject: [PATCH 1/3] Merge in-kernel decode disable support Signed-off-by: Jarod Wilson --- lirc.init | 25 +++++++++++++++++++++++++ lirc.spec | 1 + 2 files changed, 26 insertions(+) mode change 100644 => 100755 lirc.init 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 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 - 0.9.0-0.2.pre1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild From f13c64e2db03dd7b4f6c33f4d7270854505be179 Mon Sep 17 00:00:00 2001 From: Jarod Wilson Date: Sun, 27 Mar 2011 00:15:28 -0400 Subject: [PATCH 2/3] Only disable in-kernel decode when using lirc interface Signed-off-by: Jarod Wilson --- lirc.init | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lirc.init b/lirc.init index a397f8b..c50842b 100755 --- a/lirc.init +++ b/lirc.init @@ -79,11 +79,13 @@ start() { # 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 + if [ $(echo "$LIRC_DEVICE" | grep -c /dev/lirc) -ge 1 ]; then + rcs=$(find -L /sys/class/rc/ -maxdepth 2 -name protocols 2> /dev/null) + for rc in $rcs + do + echo lirc > ${rc} + done + fi fi return $retval From f44b189dbfbad1663f246b6e955876a91e935b23 Mon Sep 17 00:00:00 2001 From: Jarod Wilson Date: Tue, 3 May 2011 05:56:23 -0400 Subject: [PATCH 3/3] lirc: don't disable in-kernel decoders in devinput mode Signed-off-by: Jarod Wilson --- lirc.init | 2 +- lirc.spec | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lirc.init b/lirc.init index c50842b..ab5c833 100755 --- a/lirc.init +++ b/lirc.init @@ -79,7 +79,7 @@ start() { # we disable the in-kernel decoding when lircd is started up # successfully if [ $retval -eq 0 ]; then - if [ $(echo "$LIRC_DEVICE" | grep -c /dev/lirc) -ge 1 ]; then + if [ $(echo "$LIRC_DRIVER" | grep -c "dev.*input") -lt 1 ]; then rcs=$(find -L /sys/class/rc/ -maxdepth 2 -name protocols 2> /dev/null) for rc in $rcs do diff --git a/lirc.spec b/lirc.spec index d490423..ba067a9 100644 --- a/lirc.spec +++ b/lirc.spec @@ -24,7 +24,7 @@ Name: lirc Version: 0.9.0 %if 0%{?released} -Release: 1%{?dist} +Release: 2%{?dist} %else Release: 0.1.%{pre}%{?dist} %endif @@ -297,6 +297,10 @@ fi %changelog +* Tue May 03 2011 Jarod Wilson 0.9.0-2 +- Only disable in-kernel IR decoders if we're not using devinput mode, + as they're actually required for devinput mode to work right. + * Sat Mar 26 2011 Jarod Wilson 0.9.0-1 - Update to lirc 0.9.0 release - Disable in-kernel IR decoding when starting up lircd, reenable on shutdown