Skip to content

RFC Send and receive decoded IR using lirc interface

Sean Young linux-media 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 RFC Latest6 patches 26 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/6lirc: remove broken featuresDocumentation/DocBook/media/v4l/lirc_device_interface.xml include/media/lirc.h+8 -301 reply
2/6lirc: LIRC_[SG]ET_SEND_MODE should return -ENOSYSdrivers/media/rc/ir-lirc-codec.c+9 -21 reply
3/6rc: lirc bridge should not be a raw decoderdrivers/media/rc/Kconfig drivers/media/rc/Makefile drivers/media/rc/ir-lirc-codec.c +5 more+92 -1341 reply
4/6rc: lirc is not a protocol or a keymapdrivers/media/rc/keymaps/Makefile drivers/media/rc/keymaps/rc-lirc.c drivers/media/rc/rc-main.c +2 more+20 -688 replies
5/6lirc: pass IR scancodes to userspace via lirc bridgeDocumentation/DocBook/media/v4l/lirc_device_interface.xml drivers/media/rc/Kconfig drivers/media/rc/ir-lirc-codec.c +4 more+86 -191 reply
6/6rc: teach lirc how to send scancodesDocumentation/DocBook/media/v4l/lirc_device_interface.xml drivers/media/rc/ir-lirc-codec.c drivers/media/rc/ir-nec-decoder.c +4 more+132 -304 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [RFC PATCH 0/6] Send and receive decoded IR using lirc interface

This patch series tries to fix the lirc interface and extend it so it can be used to send/recv scancodes in addition to raw IR:

- Make it possible to receive scancodes from hardware that generates scancodes (with rc protocol information)
- Make it possible to receive decoded scancodes from raw IR, from the in-kernel decoders (not mce mouse/keyboard). Now you can take any remote, run ir-rec and you will get both the raw IR and the decoded scancodes plus rc protocol information.
- Make it possible to send scancodes; in kernel-encoding of IR
- Make it possible to send scancodes for hardware that can only do that (so that lirc_zilog can be moved out of staging, not completed yet)
- Possibly the lirc interface can be used for cec?

This requires a little refactoring.
- All rc-core devices will have a lirc device associated with them
- The rc-core <-> lirc bridge no longer is a "decoder", this never made sense and caused confusion

This requires new API for rc-core lirc devices.
- New feature LIRC_CAN_REC_SCANCODE and LIRC_CAN_SEND_SCANCODE
- REC_MODE and SEND_MODE do not enable LIRC_MODE_SCANCODE by default since this would confuse existing userspace code
- For each scancode we need:
- rc protocol (RC_TYPE_*)
- toggle and repeat bit for some protocols
- 32 bit scancode

A separate patch will introduce new v4l-utils tools ir-rec and ir-send for displaying and sending IR, raw or scancode.

There are few FIXMEs in the code, I am sending this for early feedback. For example there are no encoders for most IR protocols (just nec).

However the first four patches can be merged as-is should it be accepted.

Sean Young (6):
[PATCH 1/6] [media] lirc: remove broken features
[PATCH 2/6] [media] lirc: LIRC_[SG]ET_SEND_MODE should return -ENOSYS [PATCH 3/6] [media] rc: lirc bridge should not be a raw decoder [PATCH 4/6] [media] rc: lirc is not a protocol or a keymap [PATCH 5/6] [media] lirc: pass IR scancodes to userspace via lirc
bridge
[PATCH 6/6] [media] rc: teach lirc how to send scancodes

 .../DocBook/media/v4l/lirc_device_interface.xml    |  82 ++++----
 drivers/media/rc/Kconfig                           |  19 +-
 drivers/media/rc/Makefile                          |   6 +-
 drivers/media/rc/ir-lirc-codec.c                   | 211 ++++++++++++---------
 drivers/media/rc/ir-nec-decoder.c                  |  50 +++++
 drivers/media/rc/keymaps/Makefile                  |   1 -
 drivers/media/rc/keymaps/rc-lirc.c                 |  42 ----
 drivers/media/rc/lirc_dev.c                        |  18 +-
 drivers/media/rc/rc-core-priv.h                    |  43 +++--
 drivers/media/rc/rc-ir-raw.c                       |  23 ++-
 drivers/media/rc/rc-main.c                         |  29 ++-
 drivers/media/rc/st_rc.c                           |   2 +-
 include/media/lirc.h                               |  31 ++-
 include/media/rc-core.h                            |   9 +
 include/media/rc-map.h                             |  42 ++--
 15 files changed, 336 insertions(+), 272 deletions(-)
 delete mode 100644 drivers/media/rc/keymaps/rc-lirc.c
Signature · 1 line
2.1.0