On Mon, Jun 27, 2022 at 08:00:45AM +0300, Marko Mäkelä wrote: > Sun, Jun 26, 2022 at 03:33:48PM +0300, Marko Mäkelä wrote: > > How about the following improvement? If IR_RX_BC is a simple cursor to > > the 128-byte IR_RX_BUF, then rtl2832u_rc_query() could avoid sending > > refresh_tab[] but simply remember where the previous call left off. We > > could always read the 128 bytes at IR_RX_BUF, and process everything > > between the previous position reported by IR_RX_BC and the current > > position reported by IR_RX_BC, and treat buf[] as a ring buffer. > > I experimented with this on the 5.19.0-rc3 kernel. With the attached patch > applied on top of this patch series, "ir-keytables -t" reported only one RC5 > encoded key-down event. I had to unplug and plug in the adapter in order to > receive another RC5 event. The refresh command seems to be necessary for the > device to store and forward further IR data. > > > Last time I tested it, the patch was a significant improvement. I think > > that "perfect" is the enemy of "good enough", and the patch should be > > included in the kernel. > > The remaining problem definitely is a limitation of the interface. There is > little that can be done to work around it. This particular device is really badly designed. Unless we come up with a better solution to work around its limitations, it's just broken. Sean