Merge pull request #4196 from HiassofT/le10-lirc-bpf

enable support for BPF IR decoders
This commit is contained in:
MilhouseVH 2020-02-22 07:11:57 +00:00 committed by GitHub
commit e49037dcc0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 303 additions and 13 deletions

View File

@ -0,0 +1,16 @@
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2020-present Team LibreELEC (https://libreelec.tv)
PKG_NAME="ir-bpf-decoders"
PKG_VERSION="v4l-utils-1.18.0"
PKG_SHA256="7d8777708ba861dcf46e26d5c04dc9f6e6181b4cb6a82cf836d1e015818a76e9"
PKG_LICENSE="GPLv2+"
PKG_SITE="https://linuxtv.org/"
PKG_URL="https://github.com/LibreELEC/ir-bpf-decoders/archive/$PKG_VERSION.tar.gz"
PKG_LONGDESC="ir-bpf-decoders: precompiled binaries of IR BPF decoders from v4l-utils utils/keytable/bpf_protocols"
PKG_TOOLCHAIN="manual"
makeinstall_target() {
mkdir -p $INSTALL/usr/lib/udev/rc_keymaps/protocols
cp $PKG_BUILD/*.o $INSTALL/usr/lib/udev/rc_keymaps/protocols
}

View File

@ -0,0 +1,3 @@
BPF protocol decoders user config dir
put your BPF protocol decoders for ir-keytable in this directory

View File

@ -10,13 +10,15 @@ PKG_SHA256="6cb60d822eeed20486a03cc23e0fc65956fbc1e85e0c1a7477f68bbd9802880d"
PKG_LICENSE="GPL"
PKG_SITE="http://linuxtv.org/"
PKG_URL="http://linuxtv.org/downloads/v4l-utils/$PKG_NAME-$PKG_VERSION.tar.bz2"
PKG_DEPENDS_TARGET="toolchain alsa-lib systemd"
PKG_DEPENDS_TARGET="toolchain alsa-lib systemd elfutils ir-bpf-decoders"
PKG_LONGDESC="Linux V4L2 and DVB API utilities and v4l libraries (libv4l)."
PKG_TOOLCHAIN="autotools"
PKG_CONFIGURE_OPTS_TARGET="--without-jpeg \
--disable-bpf \
--enable-bpf \
--enable-static \
--disable-shared"
--disable-shared \
--disable-doxygen-doc"
pre_configure_target() {
# cec-ctl fails to build in subdirs
@ -43,6 +45,7 @@ makeinstall_target() {
fi
make install DESTDIR=$INSTALL PREFIX=/usr -C utils/dvb
make install DESTDIR=$INSTALL PREFIX=/usr -C utils/v4l2-ctl
cp ${PKG_BUILD}/contrib/lircd2toml.py ${INSTALL}/usr/bin/
}
create_multi_keymap() {

View File

@ -0,0 +1,26 @@
From 137dd2edea4d6c70b10caebebed4778716070ed2 Mon Sep 17 00:00:00 2001
From: Matthias Reichl <hias@horus.com>
Date: Sun, 9 Feb 2020 00:16:29 +0100
Subject: [PATCH] don't include doxygen autotools include
Signed-off-by: Matthias Reichl <hias@horus.com>
---
Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile.am b/Makefile.am
index d20dfe0f..05dc8c1a 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -11,7 +11,7 @@ EXTRA_DIST = android-config.h bootstrap.sh doxygen_libdvbv5.cfg include COPYING.
COPYING.libdvbv5 README.libv4l README.lib-multi-threading TODO.libdvbv5 \
doc/libdvbv5-index.doc
-include $(top_srcdir)/aminclude.am
+# include $(top_srcdir)/aminclude.am
# custom targets
--
2.20.1

View File

@ -0,0 +1,40 @@
From 6aafb490b7c352b04f036ea6f9cbc33be8383ddf Mon Sep 17 00:00:00 2001
From: Matthias Reichl <hias@horus.com>
Date: Sat, 8 Feb 2020 21:42:06 +0100
Subject: [PATCH] disable bpf decoder build and drop bpf dependency on clang
Signed-off-by: Matthias Reichl <hias@horus.com>
---
configure.ac | 2 +-
utils/keytable/Makefile.am | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index 6ff26093..1efa7879 100644
--- a/configure.ac
+++ b/configure.ac
@@ -508,7 +508,7 @@ AM_CONDITIONAL([WITH_V4L2_CTL_LIBV4L], [test x${enable_v4l2_ctl_libv4l} != xno])
AM_CONDITIONAL([WITH_V4L2_CTL_STREAM_TO], [test x${enable_v4l2_ctl_stream_to} != xno])
AM_CONDITIONAL([WITH_V4L2_COMPLIANCE], [test x$ac_cv_func_fork = xyes])
AM_CONDITIONAL([WITH_V4L2_COMPLIANCE_LIBV4L], [test x$ac_cv_func_fork = xyes -a x${enable_v4l2_compliance_libv4l} != xno])
-AM_CONDITIONAL([WITH_BPF], [test x$enable_bpf != xno -a x$libelf_pkgconfig = xyes -a x$CLANG = xclang])
+AM_CONDITIONAL([WITH_BPF], [test x$enable_bpf != xno -a x$libelf_pkgconfig = xyes])
# append -static to libtool compile and link command to enforce static libs
AS_IF([test x$enable_libdvbv5 = xno], [AC_SUBST([ENFORCE_LIBDVBV5_STATIC], ["-static"])])
diff --git a/utils/keytable/Makefile.am b/utils/keytable/Makefile.am
index d7b30e2c..a2c8df8d 100644
--- a/utils/keytable/Makefile.am
+++ b/utils/keytable/Makefile.am
@@ -15,7 +15,7 @@ ir_keytable_LDFLAGS = $(ARGP_LIBS)
if WITH_BPF
ir_keytable_LDFLAGS += $(LIBELF_LIBS)
-SUBDIRS = bpf_protocols
+# SUBDIRS = bpf_protocols
endif
EXTRA_DIST = 70-infrared.rules rc_keymaps rc_keymaps_userspace gen_input_events.pl gen_keytables.pl ir-keytable.1 rc_maps.cfg rc_keymap.5
--
2.20.1

View File

@ -0,0 +1,140 @@
From 6013e359b70236f36d4f395d845ecc766c2230ba Mon Sep 17 00:00:00 2001
From: Sean Young <sean@mess.org>
Date: Mon, 14 Oct 2019 11:46:31 +0100
Subject: [PATCH] keytable: do not warn if keymap not found in
IR_KEYTABLE_USER_DIR
The following error is logged even though imon_rsc.toml is found at
/lib/udev/rc_keymaps/imon_rsc.toml:
$ ir-keytable -a /etc/rc_maps.cfg
/etc/rc_keymaps/imon_rsc.toml: error: cannot open: No such file or directory
Signed-off-by: Sean Young <sean@mess.org>
---
utils/keytable/keytable.c | 81 +++++++++++++++++++++++----------------
1 file changed, 48 insertions(+), 33 deletions(-)
diff --git a/utils/keytable/keytable.c b/utils/keytable/keytable.c
index 6cb0217a..e2a1bfe1 100644
--- a/utils/keytable/keytable.c
+++ b/utils/keytable/keytable.c
@@ -1954,6 +1954,38 @@ int bpf_param(struct protocol_param *protocol_param, const char *name, int *val)
return -ENOENT;
}
+char* keymap_to_filename(const char *fname)
+{
+ struct stat st;
+ char *p;
+
+ if (fname[0] == '/' || ((fname[0] == '.') && strchr(fname, '/')))
+ return strdup(fname);
+
+ if (asprintf(&p, IR_KEYTABLE_USER_DIR "/%s", fname) < 0) {
+ fprintf(stderr, _("asprintf failed: %m\n"));
+ return NULL;
+ }
+
+ if (!stat(p, &st))
+ return p;
+
+ free(p);
+ if (asprintf(&p, IR_KEYTABLE_SYSTEM_DIR "/%s", fname) < 0) {
+ fprintf(stderr, _("asprintf failed: %m\n"));
+ return NULL;
+ }
+
+ if (!stat(p, &st))
+ return p;
+
+ free(p);
+
+ fprintf(stderr, _("error: Unable to find keymap %s in %s or %s\n"), fname, IR_KEYTABLE_USER_DIR, IR_KEYTABLE_SYSTEM_DIR);
+
+ return NULL;
+}
+
int main(int argc, char *argv[])
{
int dev_from_class = 0, write_cnt;
@@ -2003,6 +2035,7 @@ int main(int argc, char *argv[])
if (cfg.next) {
struct cfgfile *cur;
+ struct keymap *map;
char *fname;
int rc;
int matches = 0;
@@ -2014,53 +2047,35 @@ int main(int argc, char *argv[])
continue;
if (debug)
- fprintf(stderr, _("Table for %s, %s is on %s file.\n"),
+ fprintf(stderr, _("Keymap for %s, %s is on %s file.\n"),
rc_dev.drv_name, rc_dev.keytable_name,
cur->fname);
- if (cur->fname[0] == '/' || ((cur->fname[0] == '.') && strchr(cur->fname, '/'))) {
- struct keymap *map;
- fname = cur->fname;
- rc = parse_keymap(fname, &map, debug);
- if (rc < 0) {
- fprintf(stderr, _("Can't load %s table\n"), fname);
- return -1;
- }
- add_keymap(map, fname);
- free_keymap(map);
- } else {
- struct keymap *map;
- fname = malloc(strlen(cur->fname) + strlen(IR_KEYTABLE_USER_DIR) + 2);
- strcpy(fname, IR_KEYTABLE_USER_DIR);
- strcat(fname, "/");
- strcat(fname, cur->fname);
- rc = parse_keymap(fname, &map, debug);
- if (rc != 0) {
- fname = malloc(strlen(cur->fname) + strlen(IR_KEYTABLE_SYSTEM_DIR) + 2);
- strcpy(fname, IR_KEYTABLE_SYSTEM_DIR);
- strcat(fname, "/");
- strcat(fname, cur->fname);
- rc = parse_keymap(fname, &map, debug);
- }
- if (rc != 0) {
- fprintf(stderr, _("Can't load %s table from %s or %s\n"), cur->fname, IR_KEYTABLE_USER_DIR, IR_KEYTABLE_SYSTEM_DIR);
- return -1;
- }
+ fname = keymap_to_filename(cur->fname);
+ if (!fname)
+ return -1;
- add_keymap(map, fname);
- free_keymap(map);
+ rc = parse_keymap(fname, &map, debug);
+ if (rc < 0) {
+ fprintf(stderr, _("Can't load %s keymap\n"), fname);
+ free(fname);
+ return -1;
}
+ add_keymap(map, fname);
+ free_keymap(map);
if (!keytable) {
- fprintf(stderr, _("Empty table %s\n"), fname);
+ fprintf(stderr, _("Empty keymap %s\n"), fname);
+ free(fname);
return -1;
}
+ free(fname);
clear = 1;
matches++;
}
if (!matches) {
if (debug)
- fprintf(stderr, _("Table for %s, %s not found. Keep as-is\n"),
+ fprintf(stderr, _("Keymap for %s, %s not found. Keep as-is\n"),
rc_dev.drv_name, rc_dev.keytable_name);
return 0;
}
--
2.20.1

View File

@ -0,0 +1,38 @@
From 2e1c2d2b2d69596aea953e241edb3d82764db718 Mon Sep 17 00:00:00 2001
From: Sean Young <sean@mess.org>
Date: Tue, 31 Dec 2019 18:24:05 +0000
Subject: [PATCH] lircd2toml: warn when scancode has duplicate definitions
In lircd.conf files, it is possible that the same scancode has multiple
key definitions. In our rc keymap toml format, one scancode can only
have one key definition.
Possibly we should allow alternate names for scancode for transmitting;
however, as a first step, we should warn if there are multiple
definitions for the same scancode.
Signed-off-by: Sean Young <sean@mess.org>
---
contrib/lircd2toml.py | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/contrib/lircd2toml.py b/contrib/lircd2toml.py
index 54ea12fc..ba4b14ec 100755
--- a/contrib/lircd2toml.py
+++ b/contrib/lircd2toml.py
@@ -131,7 +131,11 @@ class LircdParser:
for s in a:
if s[0] == '#':
break
- codes[int(s, 0)] = k
+ scancode = int(s, 0)
+ if scancode in codes:
+ self.warning("scancode 0x{:x} has duplicate definition {} and {}".format(scancode, codes[scancode], k))
+
+ codes[scancode] = k
def read_raw_codes(self):
raw_codes = []
--
2.20.1

View File

@ -153,6 +153,7 @@ CONFIG_PROC_PID_CPUSET=y
CONFIG_CGROUP_DEVICE=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_CGROUP_PERF=y
CONFIG_CGROUP_BPF=y
# CONFIG_CGROUP_DEBUG is not set
CONFIG_SOCK_CGROUP_DATA=y
CONFIG_NAMESPACES=y
@ -207,7 +208,8 @@ CONFIG_MEMBARRIER=y
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
CONFIG_KALLSYMS_BASE_RELATIVE=y
# CONFIG_BPF_SYSCALL is not set
CONFIG_BPF_SYSCALL=y
# CONFIG_BPF_JIT_ALWAYS_ON is not set
# CONFIG_USERFAULTFD is not set
CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y
CONFIG_RSEQ=y
@ -790,6 +792,7 @@ CONFIG_XFRM_USER=y
# CONFIG_XFRM_MIGRATE is not set
# CONFIG_XFRM_STATISTICS is not set
# CONFIG_NET_KEY is not set
# CONFIG_XDP_SOCKETS is not set
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
# CONFIG_IP_ADVANCED_ROUTER is not set
@ -1185,6 +1188,7 @@ CONFIG_CGROUP_NET_CLASSID=y
CONFIG_NET_RX_BUSY_POLL=y
CONFIG_BQL=y
CONFIG_BPF_JIT=y
# CONFIG_BPF_STREAM_PARSER is not set
CONFIG_NET_FLOW_LIMIT=y
#
@ -2945,6 +2949,7 @@ CONFIG_CEC_PIN=y
CONFIG_RC_CORE=y
CONFIG_RC_MAP=y
CONFIG_LIRC=y
CONFIG_BPF_LIRC_MODE2=y
CONFIG_RC_DECODERS=y
CONFIG_IR_NEC_DECODER=y
CONFIG_IR_RC5_DECODER=y

View File

@ -144,6 +144,7 @@ CONFIG_PROC_PID_CPUSET=y
CONFIG_CGROUP_DEVICE=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_CGROUP_PERF=y
CONFIG_CGROUP_BPF=y
# CONFIG_CGROUP_DEBUG is not set
CONFIG_SOCK_CGROUP_DATA=y
CONFIG_NAMESPACES=y
@ -201,7 +202,7 @@ CONFIG_MEMBARRIER=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
CONFIG_KALLSYMS_BASE_RELATIVE=y
# CONFIG_BPF_SYSCALL is not set
CONFIG_BPF_SYSCALL=y
# CONFIG_USERFAULTFD is not set
CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y
CONFIG_RSEQ=y
@ -808,6 +809,7 @@ CONFIG_XFRM_USER=y
# CONFIG_XFRM_MIGRATE is not set
# CONFIG_XFRM_STATISTICS is not set
# CONFIG_NET_KEY is not set
# CONFIG_XDP_SOCKETS is not set
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
# CONFIG_IP_ADVANCED_ROUTER is not set
@ -1167,6 +1169,7 @@ CONFIG_CGROUP_NET_CLASSID=y
CONFIG_NET_RX_BUSY_POLL=y
CONFIG_BQL=y
# CONFIG_BPF_JIT is not set
# CONFIG_BPF_STREAM_PARSER is not set
CONFIG_NET_FLOW_LIMIT=y
#
@ -2774,6 +2777,7 @@ CONFIG_CEC_PIN=y
CONFIG_RC_CORE=y
CONFIG_RC_MAP=y
CONFIG_LIRC=y
CONFIG_BPF_LIRC_MODE2=y
CONFIG_RC_DECODERS=y
CONFIG_IR_NEC_DECODER=y
CONFIG_IR_RC5_DECODER=y

View File

@ -2721,9 +2721,10 @@ CONFIG_REGULATOR_PWM=y
# CONFIG_REGULATOR_VCTRL is not set
CONFIG_CEC_CORE=y
CONFIG_CEC_NOTIFIER=y
CONFIG_RC_CORE=m
CONFIG_RC_CORE=y
CONFIG_RC_MAP=m
CONFIG_LIRC=y
CONFIG_BPF_LIRC_MODE2=y
CONFIG_RC_DECODERS=y
CONFIG_IR_NEC_DECODER=m
CONFIG_IR_RC5_DECODER=m
@ -2767,6 +2768,7 @@ CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
CONFIG_MEDIA_RADIO_SUPPORT=y
# CONFIG_MEDIA_SDR_SUPPORT is not set
CONFIG_MEDIA_CEC_SUPPORT=y
# CONFIG_MEDIA_CEC_RC is not set
CONFIG_MEDIA_CONTROLLER=y
CONFIG_MEDIA_CONTROLLER_DVB=y
CONFIG_MEDIA_CONTROLLER_REQUEST_API=y

View File

@ -3216,9 +3216,10 @@ CONFIG_REGULATOR=y
# CONFIG_REGULATOR_TPS6507X is not set
# CONFIG_REGULATOR_TPS65132 is not set
CONFIG_CEC_CORE=y
CONFIG_RC_CORE=m
CONFIG_RC_CORE=y
CONFIG_RC_MAP=m
CONFIG_LIRC=y
CONFIG_BPF_LIRC_MODE2=y
CONFIG_RC_DECODERS=y
CONFIG_IR_NEC_DECODER=m
CONFIG_IR_RC5_DECODER=m
@ -3262,6 +3263,7 @@ CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
# CONFIG_MEDIA_RADIO_SUPPORT is not set
# CONFIG_MEDIA_SDR_SUPPORT is not set
# CONFIG_MEDIA_CEC_SUPPORT is not set
# CONFIG_MEDIA_CEC_RC is not set
CONFIG_MEDIA_CONTROLLER=y
CONFIG_MEDIA_CONTROLLER_DVB=y
CONFIG_MEDIA_CONTROLLER_REQUEST_API=y

View File

@ -2616,9 +2616,10 @@ CONFIG_REGULATOR_ARIZONA_MICSUPP=m
# CONFIG_REGULATOR_TPS6524X is not set
# CONFIG_REGULATOR_VCTRL is not set
CONFIG_CEC_CORE=y
CONFIG_RC_CORE=m
CONFIG_RC_CORE=y
CONFIG_RC_MAP=m
CONFIG_LIRC=y
CONFIG_BPF_LIRC_MODE2=y
CONFIG_RC_DECODERS=y
CONFIG_IR_NEC_DECODER=m
CONFIG_IR_RC5_DECODER=m
@ -2661,6 +2662,7 @@ CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
CONFIG_MEDIA_RADIO_SUPPORT=y
# CONFIG_MEDIA_SDR_SUPPORT is not set
# CONFIG_MEDIA_CEC_SUPPORT is not set
# CONFIG_MEDIA_CEC_RC is not set
CONFIG_MEDIA_CONTROLLER=y
CONFIG_MEDIA_CONTROLLER_DVB=y
CONFIG_MEDIA_CONTROLLER_REQUEST_API=y

View File

@ -2744,9 +2744,10 @@ CONFIG_REGULATOR_ARIZONA_MICSUPP=m
# CONFIG_REGULATOR_TPS6524X is not set
# CONFIG_REGULATOR_VCTRL is not set
CONFIG_CEC_CORE=y
CONFIG_RC_CORE=m
CONFIG_RC_CORE=y
CONFIG_RC_MAP=m
CONFIG_LIRC=y
CONFIG_BPF_LIRC_MODE2=y
CONFIG_RC_DECODERS=y
CONFIG_IR_NEC_DECODER=m
CONFIG_IR_RC5_DECODER=m
@ -2789,6 +2790,7 @@ CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
CONFIG_MEDIA_RADIO_SUPPORT=y
# CONFIG_MEDIA_SDR_SUPPORT is not set
# CONFIG_MEDIA_CEC_SUPPORT is not set
# CONFIG_MEDIA_CEC_RC is not set
CONFIG_MEDIA_CONTROLLER=y
CONFIG_MEDIA_CONTROLLER_DVB=y
CONFIG_MEDIA_CONTROLLER_REQUEST_API=y

View File

@ -3194,9 +3194,10 @@ CONFIG_REGULATOR_GPIO=y
# CONFIG_REGULATOR_TPS65132 is not set
# CONFIG_REGULATOR_TPS6524X is not set
# CONFIG_REGULATOR_VCTRL is not set
CONFIG_RC_CORE=m
CONFIG_RC_CORE=y
CONFIG_RC_MAP=m
CONFIG_LIRC=y
CONFIG_BPF_LIRC_MODE2=y
CONFIG_RC_DECODERS=y
CONFIG_IR_NEC_DECODER=m
CONFIG_IR_RC5_DECODER=m

View File

@ -2557,9 +2557,10 @@ CONFIG_REGULATOR_TPS65910=y
# CONFIG_REGULATOR_VCTRL is not set
CONFIG_CEC_CORE=y
CONFIG_CEC_NOTIFIER=y
CONFIG_RC_CORE=m
CONFIG_RC_CORE=y
CONFIG_RC_MAP=m
CONFIG_LIRC=y
CONFIG_BPF_LIRC_MODE2=y
CONFIG_RC_DECODERS=y
CONFIG_IR_NEC_DECODER=m
CONFIG_IR_RC5_DECODER=m
@ -2603,6 +2604,7 @@ CONFIG_MEDIA_CAMERA_SUPPORT=y
# CONFIG_MEDIA_RADIO_SUPPORT is not set
# CONFIG_MEDIA_SDR_SUPPORT is not set
CONFIG_MEDIA_CEC_SUPPORT=y
# CONFIG_MEDIA_CEC_RC is not set
CONFIG_MEDIA_CONTROLLER=y
CONFIG_MEDIA_CONTROLLER_REQUEST_API=y
CONFIG_VIDEO_DEV=m

View File

@ -2662,9 +2662,10 @@ CONFIG_REGULATOR_RK808=y
# CONFIG_REGULATOR_VCTRL is not set
CONFIG_CEC_CORE=y
CONFIG_CEC_NOTIFIER=y
CONFIG_RC_CORE=m
CONFIG_RC_CORE=y
CONFIG_RC_MAP=m
CONFIG_LIRC=y
CONFIG_BPF_LIRC_MODE2=y
CONFIG_RC_DECODERS=y
CONFIG_IR_NEC_DECODER=m
CONFIG_IR_RC5_DECODER=m
@ -2708,6 +2709,7 @@ CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
# CONFIG_MEDIA_RADIO_SUPPORT is not set
# CONFIG_MEDIA_SDR_SUPPORT is not set
CONFIG_MEDIA_CEC_SUPPORT=y
# CONFIG_MEDIA_CEC_RC is not set
CONFIG_MEDIA_CONTROLLER=y
# CONFIG_MEDIA_CONTROLLER_DVB is not set
CONFIG_MEDIA_CONTROLLER_REQUEST_API=y

View File

@ -2662,9 +2662,10 @@ CONFIG_REGULATOR_RK808=y
# CONFIG_REGULATOR_VCTRL is not set
CONFIG_CEC_CORE=y
CONFIG_CEC_NOTIFIER=y
CONFIG_RC_CORE=m
CONFIG_RC_CORE=y
CONFIG_RC_MAP=m
CONFIG_LIRC=y
CONFIG_BPF_LIRC_MODE2=y
CONFIG_RC_DECODERS=y
CONFIG_IR_NEC_DECODER=m
CONFIG_IR_RC5_DECODER=m
@ -2708,6 +2709,7 @@ CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
# CONFIG_MEDIA_RADIO_SUPPORT is not set
# CONFIG_MEDIA_SDR_SUPPORT is not set
CONFIG_MEDIA_CEC_SUPPORT=y
# CONFIG_MEDIA_CEC_RC is not set
CONFIG_MEDIA_CONTROLLER=y
# CONFIG_MEDIA_CONTROLLER_DVB is not set
CONFIG_MEDIA_CONTROLLER_REQUEST_API=y