Hi, On Wed, May 25, 2022 at 08:42:26AM +0200, Jiri Slaby wrote: > On 22. 03. 22, 10:14, Mauro Carvalho Chehab wrote: > > Hi Linus, > > > > Please pull from: > > git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media tags/media/v5.18-1 > ... > > Sean Young (10): > ... > > media: lirc: remove unused lirc features > > Hi, > > this breaks lirc build: > > [ 59s] lircd.cpp:489:49: error: 'LIRC_CAN_SET_REC_FILTER' was not declared in this scope; did you mean 'LIRC_CAN_SET_REC_CARRIER'? > > [ 59s] 489 | || (curr_driver->features & LIRC_CAN_SET_REC_FILTER)) { > > [ 59s] | ^~~~~~~~~~~~~~~~~~~~~~~ > > [ 59s] | LIRC_CAN_SET_REC_CARRIER > > [ 59s] lircd.cpp: In function 'void loop()': > > [ 59s] lircd.cpp:2069:82: error: 'LIRC_CAN_NOTIFY_DECODE' was not declared in this scope; did you mean 'DRVCTL_NOTIFY_DECODE'? > > [ 59s] 2069 | if (curr_driver->drvctl_func && (curr_driver->features & LIRC_CAN_NOTIFY_DECODE)) > > [ 59s] | ^~~~~~~~~~~~~~~~~~~~~~ > > [ 59s] | DRVCTL_NOTIFY_DECODE > > So the uapi header defines should be brought back, IMO. The lirc.h uapi defines the lirc chardev uapi. The uapi has not changed in any way, for old or new kernels. So the lirc header used to have feature flags LIRC_CAN_SET_REC_FILTER and LIRC_CAN_NOTIFY_DECODE which were defined the in the lirc.h header, but never implemented by any out of tree or in tree driver. Neither feature was or will be ever implemented in the kernel; LIRC_CAN_NOTIFY_DECODE is handled via the led subsytem, and it is unknown what LIRC_CAN_SET_REC_FILTER is even supposed to mean. Again, I have not found any implementation anywhere. You are trying to build lirc user space daemon which is no longer maintained. The last time the lirc daemon git repo had any commits was in 2019. User space tooling has been replaced with daemon-less ir-ctl and ir-keytable, which uses BPF for IR decoding. The right fix is to simply delete the offending lines in lircd.cpp and all will be well. Sometimes source code needs a little maintainence. These changes in the lirc uapi do not change the uapi in any way, just the ability the build some unmaintained software without trivial changes. Thanks, Sean