[mythtv-users] Remote keys repeating way too fast
Doug Scoular (dscoular)
dscoular at cisco.com
Sat Apr 17 10:54:06 UTC 2021
> It looks like a kernel devinput driver problem, so I think the
> obvious fix is to go back to the last kernel that worked, if you
Okay, I had managed to confuse myself over the kernel version that
caused the IR key repeat problem. In my previous email I said that
I thought it was 5.8.0-45-generic that caused the problem but now I
realise it was actually 5.8.0-49-generic that caused my grief...
* 2021-03-16 06:09:00 Install: linux-image-5.8.0-45-generic:amd64
* 2021-04-14 06:48:02 Install: linux-image-5.8.0-49-generic:amd64
I reverted back to 5.8.0-45 and the IR key repeat problem was
> If you do a bug report (recommended), you may want to do a kernel
> bisect to see where the problem first started. At the moment, it
> could be anywhere between 5.4.0-49 and 5.8.0-45.
It's a long, long time since I compiled a kernel let alone
embarked on a bug hunt but I think I manage to narrow things down a
little (I've never even used git bisect before).
Anyway, I think we can say that the problem may have been
re-introduced by 5.8.0-49 and, unfortunately, 5.8.0-50 carries it
Looking at the diffs between 5.8.0-45 and 5.8.0-49:
root at lisa:/mnt/store1/src/groovy/drivers/media/rc# git diff Ubuntu-5.8.0-45.51..Ubuntu-5.8.0-49.55 .
I found the following suspicious Jan 5 2021 commit:
root at lisa:/mnt/store1/src/groovy/drivers/media/rc# git show c592cca3691db
It looks like there's been an effort to harmonize infrared
durations from nanosconds (one billionth of a second) to microseconds
(one millionth of a second).
The commit changed the drivers/media/rc/ir-mce_kbd-decoder.c and
the drivers/media/rc/rc-main.c files specifically the rc_repeat()
function in the latter file.
The commit comment is:
media: rc: fix timeout handling after switch to microsecond durations
commit 06b831588b639ad9d94e4789b0250562228722c2 upstream.
Commit 528222d853f92 ("media: rc: harmonize infrared durations to
microseconds") missed to switch some timeout calculations from
nanoseconds to microseconds. This resulted in spurious key_up+key_down
events at the last scancode if the rc device uses a long timeout
(eg 100ms on nuvoton-cir) as the device timeout wasn't properly
accounted for in the keyup timeout calculation.
Fix this by applying the proper conversion functions.
I'm not sure if this is the culprit at all but it seems to be in the
right area. I note that the kernel HEAD is still using the same
code. There have been no changes to rc-main.c since the above.
root at lisa:/mnt/store1/src/groovy/drivers/media/rc# git diff Ubuntu-5.8.0-49.55..HEAD rc-main.c
root at lisa:/mnt/store1/src/groovy/drivers/media/rc#
I'll try installing the latest kernel source, revert these two files
and see if I can figure out how to recompile and install to see if it
fixes the latest kernel.
Many thanks for responding... it gave me the confidence to dig a bit
More information about the mythtv-users