Re: [GIT PULL for v5.18-rc1] media updates

Sean Young
2022-05-25T07:40:48Z

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