summaryrefslogtreecommitdiff
path: root/meta-raspberrypi/dynamic-layers/meta-python
diff options
context:
space:
mode:
authorAndrew Geissler <geissonator@yahoo.com>2020-06-27 08:13:56 +0300
committerAndrew Geissler <geissonator@yahoo.com>2020-06-27 08:14:12 +0300
commit4fc9e431d19fba76d604f05afd8b9f478d30f462 (patch)
treec10d3341dae23968fef480f4698270ff1e1d65b6 /meta-raspberrypi/dynamic-layers/meta-python
parent84ad7c5b112283d1ccb14744025a2d2ba986412d (diff)
downloadopenbmc-4fc9e431d19fba76d604f05afd8b9f478d30f462.tar.xz
meta-raspberrypi: subtree update:39cf54c3cb..a6f1233d52
Jon Magnuson (1): packagegroup-rpi-test: resolve `wireless-regdb` conflict Khem Raj (1): linux-raspberrypi_5.4.bb: Upgrade to 5.4.47 Leon Anavi (7): lirc_%.bbappend: Fix for gpio-ir lirc: Move to dynamic-layers rpi-config: Add ENABLE_IR variable for infrared rpi-base.inc: Include modules if IR is enabled lirc_%.bbappend: Use lircd.service as in Raspbian docs/extra-build-config.md: Infrared lirc: Rename bbappend to match only version 0.10.1 M. ter Woord (1): Update layer-contents.md to include pi4 Signed-off-by: Andrew Geissler <geissonator@yahoo.com> Change-Id: I6f20c20dec1dd2fdab9e4e52dea1cdd54be4fffc
Diffstat (limited to 'meta-raspberrypi/dynamic-layers/meta-python')
-rw-r--r--meta-raspberrypi/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lirc-gpio-ir-0.10.patch175
-rw-r--r--meta-raspberrypi/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lircd.service11
-rw-r--r--meta-raspberrypi/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc_0.10.1.bbappend6
3 files changed, 192 insertions, 0 deletions
diff --git a/meta-raspberrypi/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lirc-gpio-ir-0.10.patch b/meta-raspberrypi/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lirc-gpio-ir-0.10.patch
new file mode 100644
index 000000000..c0fdd189b
--- /dev/null
+++ b/meta-raspberrypi/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lirc-gpio-ir-0.10.patch
@@ -0,0 +1,175 @@
+diff -ruN lirc-0.10.1.orig/lib/config_file.c lirc-0.10.1/lib/config_file.c
+--- lirc-0.10.1.orig/lib/config_file.c 2017-09-10 17:52:19.000000000 +0900
++++ lirc-0.10.1/lib/config_file.c 2019-06-26 00:39:45.734320696 +0900
+@@ -71,7 +71,7 @@
+ typedef void* (*array_guest_func)(void* item, void* arg);
+
+
+-#define LINE_LEN 1024
++#define LINE_LEN 4096
+ #define MAX_INCLUDES 10
+
+ const char* whitespace = " \t";
+diff -ruN lirc-0.10.1.orig/lib/ir_remote.h lirc-0.10.1/lib/ir_remote.h
+--- lirc-0.10.1.orig/lib/ir_remote.h 2017-09-10 17:52:19.000000000 +0900
++++ lirc-0.10.1/lib/ir_remote.h 2019-06-26 00:39:45.714321224 +0900
+@@ -110,12 +110,17 @@
+
+ static inline int is_pulse(lirc_t data)
+ {
+- return data & PULSE_BIT ? 1 : 0;
++ return ((data & LIRC_MODE2_MASK)==LIRC_MODE2_PULSE) ? 1 : 0;
+ }
+
+ static inline int is_space(lirc_t data)
+ {
+- return !is_pulse(data);
++ return ((data & LIRC_MODE2_MASK)==LIRC_MODE2_SPACE) ? 1 : 0;
++}
++
++static inline int is_timeout(lirc_t data)
++{
++ return ((data & LIRC_MODE2_MASK)==LIRC_MODE2_TIMEOUT) ? 1 : 0;
+ }
+
+ static inline int has_repeat(const struct ir_remote* remote)
+diff -ruN lirc-0.10.1.orig/lib/irrecord.c lirc-0.10.1/lib/irrecord.c
+--- lirc-0.10.1.orig/lib/irrecord.c 2017-09-10 17:52:19.000000000 +0900
++++ lirc-0.10.1/lib/irrecord.c 2019-06-26 00:39:45.724320960 +0900
+@@ -1398,9 +1398,16 @@
+ state->retval = 0;
+ return STS_LEN_TIMEOUT;
+ }
++ if (is_timeout(state->data)) {
++ return STS_LEN_AGAIN;
++ }
+ state->count++;
+ if (state->mode == MODE_GET_GAP) {
+- state->sum += state->data & PULSE_MASK;
++ if (state->sum != 0 || is_pulse(state->data)) {
++ state->sum += state->data & PULSE_MASK;
++ }else{
++ return STS_LEN_AGAIN;
++ }
+ if (state->average == 0 && is_space(state->data)) {
+ if (state->data > 100000) {
+ state->sum = 0;
+@@ -1472,6 +1479,10 @@
+ state->keypresses = lastmaxcount;
+ return STS_LEN_AGAIN;
+ } else if (state->mode == MODE_HAVE_GAP) {
++ if (state->count==1 && is_space(state->data)) {
++ state->count = 0;
++ return STS_LEN_AGAIN;
++ }
+ if (state->count <= MAX_SIGNALS) {
+ signals[state->count - 1] = state->data & PULSE_MASK;
+ } else {
+@@ -1510,7 +1521,7 @@
+ /* such long pulses may appear with
+ * crappy hardware (receiver? / remote?)
+ */
+- else {
++ else if(is_pulse(state->data)) {
+ remote->gap = 0;
+ return STS_LEN_NO_GAP_FOUND;
+ }
+@@ -1811,22 +1822,24 @@
+
+ static int raw_data_ok(struct button_state* btn_state)
+ {
+- int r;
++ int r = 0;
+ int ref;
+
+- if (!is_space(btn_state->data)) {
++ if (is_pulse(btn_state->data)) {
+ r = 0;
+- } else if (is_const(&remote)) {
+- if (remote.gap > btn_state->sum) {
+- ref = (remote.gap - btn_state->sum);
+- ref *= (100 - remote.eps);
+- ref /= 100;
++ } else if (is_space(btn_state->data)) {
++ if (is_const(&remote)) {
++ if (remote.gap > btn_state->sum) {
++ ref = (remote.gap - btn_state->sum);
++ ref *= (100 - remote.eps);
++ ref /= 100;
++ } else {
++ ref = 0;
++ }
++ r = btn_state->data > ref;
+ } else {
+- ref = 0;
++ r = btn_state->data > (remote.gap * (100 - remote.eps)) / 100;
+ }
+- r = btn_state->data > ref;
+- } else {
+- r = btn_state->data > (remote.gap * (100 - remote.eps)) / 100;
+ }
+ return r;
+ }
+@@ -1970,7 +1983,7 @@
+ btn_state->data = remote.gap;
+ }
+ if (btn_state->count == 0) {
+- if (!is_space(btn_state->data)
++ if (is_pulse(btn_state->data)
+ || btn_state->data <
+ remote.gap - remote.gap * remote.eps /
+ 100) {
+diff -ruN lirc-0.10.1.orig/lib/lirc/ir_remote.h lirc-0.10.1/lib/lirc/ir_remote.h
+--- lirc-0.10.1.orig/lib/lirc/ir_remote.h 2017-09-10 17:52:58.000000000 +0900
++++ lirc-0.10.1/lib/lirc/ir_remote.h 2019-06-26 00:39:45.724320960 +0900
+@@ -110,12 +110,17 @@
+
+ static inline int is_pulse(lirc_t data)
+ {
+- return data & PULSE_BIT ? 1 : 0;
++ return ((data & LIRC_MODE2_MASK)==LIRC_MODE2_PULSE) ? 1 : 0;
+ }
+
+ static inline int is_space(lirc_t data)
+ {
+- return !is_pulse(data);
++ return ((data & LIRC_MODE2_MASK)==LIRC_MODE2_SPACE) ? 1 : 0;
++}
++
++static inline int is_timeout(lirc_t data)
++{
++ return ((data & LIRC_MODE2_MASK)==LIRC_MODE2_TIMEOUT) ? 1 : 0;
+ }
+
+ static inline int has_repeat(const struct ir_remote* remote)
+diff -ruN lirc-0.10.1.orig/tools/mode2.cpp lirc-0.10.1/tools/mode2.cpp
+--- lirc-0.10.1.orig/tools/mode2.cpp 2017-09-10 17:52:19.000000000 +0900
++++ lirc-0.10.1/tools/mode2.cpp 2019-06-26 00:45:38.840404976 +0900
+@@ -326,12 +326,24 @@
+ void print_mode2_data(unsigned int data)
+ {
+ static int bitno = 1;
++ static bool leading_space = true;
++ unsigned int msg = data & LIRC_MODE2_MASK;
+
+ switch (opt_dmode) {
+ case 0:
+- printf("%s %u\n", (
+- data & PULSE_BIT) ? "pulse" : "space",
+- (uint32_t)(data & PULSE_MASK));
++ if (leading_space && msg == LIRC_MODE2_SPACE ) {
++ break;
++ } else {
++ leading_space = false;
++ }
++ if (msg == LIRC_MODE2_PULSE) {
++ printf("pulse %u\n", (__u32)(data & PULSE_MASK));
++ } else if (msg == LIRC_MODE2_SPACE) {
++ printf("space %u\n", (__u32)(data & PULSE_MASK));
++ } else if (msg == LIRC_MODE2_TIMEOUT) {
++ printf("timeout %u\n", (__u32)(data & PULSE_MASK));
++ leading_space = true;
++ }
+ break;
+ case 1: {
+ /* print output like irrecord raw config file data */
diff --git a/meta-raspberrypi/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lircd.service b/meta-raspberrypi/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lircd.service
new file mode 100644
index 000000000..03ecbb065
--- /dev/null
+++ b/meta-raspberrypi/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lircd.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=LIRC Infrared Signal Decoder
+Wants=lircd-setup.service
+After=network.target lircd-setup.service
+
+[Service]
+Type=simple
+ExecStart=/usr/sbin/lircd --nodaemon
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-raspberrypi/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc_0.10.1.bbappend b/meta-raspberrypi/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc_0.10.1.bbappend
new file mode 100644
index 000000000..5d3ab4dfd
--- /dev/null
+++ b/meta-raspberrypi/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc_0.10.1.bbappend
@@ -0,0 +1,6 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+SRC_URI_append_rpi = " \
+ file://lirc-gpio-ir-0.10.patch \
+ file://lircd.service \
+"