[PATCH v2 0/7] Improve latency of IR decoding
Sean Young
sean at mess.org
Sun Apr 8 14:19:35 PDT 2018
The current IR decoding is much too slow. Many IR protocols rely on
a trailing space for decoding (e.g. rc-6 needs to know when the bits
end). The trailing space is generated by the IR timeout, and if this
is longer than required, buttons can feel slow to respond.
The other issue is the keyup timer. IR has no concept of a keyup message,
this is implied by the absence of IR. So, minimising the timeout for
this makes buttons less "sticky"; the are released much quicker.
With these patches in place, using IR with the builtin decoders is much
improved and feels very snappy.
Changes since v1:
- lost more testing
- fixed various issues with mce decoder
- fixed mceusb so it can use better timeout too
Sean Young (7):
media: rc: set timeout to smallest value required by enabled protocols
media: rc: add ioctl to get the current timeout
media: rc: per-protocol repeat period and minimum keyup timer
media: rc: mce_kbd decoder: low timeout values cause double keydowns
media: rc: mce_kbd protocol encodes two scancodes
media: rc: mce_kbd decoder: fix stuck keys
media: rc: mceusb: allow the timeout to be configurable
Documentation/media/uapi/rc/lirc-func.rst | 1 +
.../media/uapi/rc/lirc-set-rec-timeout.rst | 14 +++--
drivers/media/cec/cec-core.c | 2 +-
drivers/media/rc/ir-imon-decoder.c | 1 +
drivers/media/rc/ir-jvc-decoder.c | 1 +
drivers/media/rc/ir-mce_kbd-decoder.c | 36 +++++++-----
drivers/media/rc/ir-nec-decoder.c | 1 +
drivers/media/rc/ir-rc5-decoder.c | 1 +
drivers/media/rc/ir-rc6-decoder.c | 1 +
drivers/media/rc/ir-sanyo-decoder.c | 1 +
drivers/media/rc/ir-sharp-decoder.c | 1 +
drivers/media/rc/ir-sony-decoder.c | 1 +
drivers/media/rc/ir-xmp-decoder.c | 1 +
drivers/media/rc/lirc_dev.c | 9 ++-
drivers/media/rc/mceusb.c | 22 +++++++
drivers/media/rc/rc-core-priv.h | 1 +
drivers/media/rc/rc-ir-raw.c | 31 +++++++++-
drivers/media/rc/rc-main.c | 68 +++++++++++-----------
include/uapi/linux/lirc.h | 6 ++
19 files changed, 144 insertions(+), 55 deletions(-)
--
2.14.3
More information about the linux-amlogic
mailing list