Thanks a lot for testing!
I added this kernel patch to set the timeout to the poll interval - basically the same thing that ir-ctl -t would have done (sorry, forgot that the timeout can't be configured on all devices)
--- a/drivers/media/usb/dvb-usb/dvb-usb-remote.c
+++ b/drivers/media/usb/dvb-usb/dvb-usb-remote.c
@@ -285,6 +285,7 @@ static int rc_core_dvb_usb_remote_init(struct dvb_usb_device *d)
dev->dev.parent = &d->udev->dev;
dev->priv = d;
dev->scancode_mask = d->props.rc.core.scancode_mask;
+ dev->timeout = MS_TO_NS(d->props.rc.core.rc_interval);
err = rc_register_device(dev);
if (err < 0) {
Here's the LibreELEC tree I built from: GitHub - HiassofT/LibreELEC.tv at le9-dvb-usb-ir-repeat
This patch was just a quick test to see if it helps on your receiver, in it's current state it will break IR remotes on dvb-usb remotes with long query interval (there are some that query every 400ms or even only once per second).
I'll have a look at that and should hopefully come up with a proper patch that I can also send upstream. BTW: the sluggishness comes from the 250ms query interval, you'll get a lot better performance from a standard MCE USB receiver or a GPIO receiver on an RPi. Quite a lot of dvb-usb dongles seem to use a 50ms remote query interval, with these the remote should be quite snappy and not suffer from the repeat issues you had, even on stock kernels.
I can't comment on the tuner crashes, this isn't my area, maybe CvH can help there.
so long,
Hias