[PATCH 00/43] rc-core: feature parity with LIRC

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The following patchset provides most of the features necessary for parity with
the LIRC subsystem that rc-core is intended to replace.

Most importantly, a chardev is provided which can be used to control RC hardware
using read (RX), write (TX) and ioctl (setting RX/TX parameters).

The patchset still needs further testing and I am well aware that patches will
be necessary to the current userspace tools as well. However, I'd like to get
the discussion started on whether the API needs any changes before I invest more
time in testing and patches to other tools.

Code review is welcome but the most important part is the userspace<->kernel
interface (i.e. the read/write/ioctl interface).

Comments?

---

David Härdeman (43):
      rc-core: move timeout and checks to lirc
      rc-core: add separate defines for protocol bitmaps and numbers
      rc-core: don't throw away protocol information
      rc-core: use the full 32 bits for NEC scancodes
      rc-core: merge rc5 and streamzap decoders
      rc-core: rename ir_input_class to rc_class
      rc-core: initialize rc-core earlier if built-in
      rc-core: use a device table rather than an atomic number
      rc-core: add chardev
      rc-core: allow chardev to be read
      mceusb: remove pointless kmalloc
      redrat: cleanup debug functions
      rc-core: use a kfifo for TX data
      rc-core: allow chardev to be written
      rc-core: add ioctl support to the rc chardev
      rc-core: add an ioctl for getting IR RX settings
      rc-loopback: add RCIOCGIRRX ioctl support
      rc-core: add an ioctl for setting IR RX settings
      rc-loopback: add RCIOCSIRRX ioctl support
      rc-core: add an ioctl for getting IR TX settings
      rc-loopback: add RCIOCGIRTX ioctl support
      rc-core: add an ioctl for setting IR TX settings
      rc-loopback: add RCIOCSIRTX ioctl support
      rc-core: leave the internals of rc_dev alone
      rc-core: prepare for multiple keytables
      rc-core: do not take mutex on rc_dev registration
      rc-core: make the keytable of rc_dev an array
      rc-core: add ioctls for adding/removing keytables from userspace
      rc-core: remove redundant spinlock
      rc-core: make keytable RCU-friendly
      rc-core: allow empty keymaps
      rc-core: split IR raw handling to a separate module
      rc-ir-raw: simplify locking
      rc-core: rename mutex
      rc-ir-raw: atomic reads of protocols
      rc-core: fix various sparse warnings
      rc-core: don't report scancodes via input devices
      rc-ir-raw: add various rc_events
      rc-core: use struct rc_event to signal TX events from userspace
      rc-core: use struct rc_event for all rc communication
      rc-core: add keytable events
      rc-core: move remaining keytable functions
      rc-core: make rc-core.h userspace friendly


 Documentation/ioctl/ioctl-number.txt           |    1 
 drivers/media/dvb/dm1105/dm1105.c              |    3 
 drivers/media/dvb/dvb-usb/Kconfig              |    2 
 drivers/media/dvb/dvb-usb/af9015.c             |   38 -
 drivers/media/dvb/dvb-usb/af9035.c             |   25 
 drivers/media/dvb/dvb-usb/anysee.c             |    4 
 drivers/media/dvb/dvb-usb/az6007.c             |   19 
 drivers/media/dvb/dvb-usb/dib0700_core.c       |   11 
 drivers/media/dvb/dvb-usb/dib0700_devices.c    |  156 +-
 drivers/media/dvb/dvb-usb/dvb-usb-remote.c     |   11 
 drivers/media/dvb/dvb-usb/dvb-usb.h            |    4 
 drivers/media/dvb/dvb-usb/it913x.c             |   24 
 drivers/media/dvb/dvb-usb/lmedm04.c            |   11 
 drivers/media/dvb/dvb-usb/pctv452e.c           |   15 
 drivers/media/dvb/dvb-usb/rtl28xxu.c           |   32 
 drivers/media/dvb/dvb-usb/technisat-usb2.c     |   17 
 drivers/media/dvb/dvb-usb/ttusb2.c             |    4 
 drivers/media/dvb/mantis/mantis_input.c        |    2 
 drivers/media/dvb/siano/Kconfig                |    2 
 drivers/media/dvb/siano/smsir.c                |   13 
 drivers/media/dvb/siano/smsir.h                |    2 
 drivers/media/dvb/ttpci/budget-ci.c            |    7 
 drivers/media/rc/Kconfig                       |   66 +
 drivers/media/rc/Makefile                      |    4 
 drivers/media/rc/ati_remote.c                  |   18 
 drivers/media/rc/ene_ir.c                      |   69 -
 drivers/media/rc/ene_ir.h                      |    9 
 drivers/media/rc/fintek-cir.c                  |   30 
 drivers/media/rc/gpio-ir-recv.c                |   11 
 drivers/media/rc/imon.c                        |   45 -
 drivers/media/rc/ir-jvc-decoder.c              |   54 -
 drivers/media/rc/ir-lirc-codec.c               |  191 ++-
 drivers/media/rc/ir-mce_kbd-decoder.c          |   38 -
 drivers/media/rc/ir-nec-decoder.c              |   93 +
 drivers/media/rc/ir-raw.c                      |  374 ------
 drivers/media/rc/ir-rc5-decoder.c              |   94 +
 drivers/media/rc/ir-rc5-sz-decoder.c           |  154 --
 drivers/media/rc/ir-rc6-decoder.c              |  102 +-
 drivers/media/rc/ir-sanyo-decoder.c            |   62 -
 drivers/media/rc/ir-sony-decoder.c             |   59 +
 drivers/media/rc/ite-cir.c                     |   57 -
 drivers/media/rc/ite-cir.h                     |    2 
 drivers/media/rc/keymaps/rc-imon-mce.c         |    2 
 drivers/media/rc/keymaps/rc-rc6-mce.c          |    2 
 drivers/media/rc/keymaps/rc-streamzap.c        |    4 
 drivers/media/rc/mceusb.c                      |  125 +-
 drivers/media/rc/nuvoton-cir.c                 |   83 +
 drivers/media/rc/nuvoton-cir.h                 |    9 
 drivers/media/rc/rc-core-priv.h                |   62 +
 drivers/media/rc/rc-ir-raw.c                   |  375 ++++++
 drivers/media/rc/rc-keytable.c                 |  996 +++++++++++++++
 drivers/media/rc/rc-loopback.c                 |  212 ++-
 drivers/media/rc/rc-main.c                     | 1575 +++++++++++-------------
 drivers/media/rc/redrat3.c                     |  336 ++---
 drivers/media/rc/streamzap.c                   |   80 +
 drivers/media/rc/winbond-cir.c                 |   61 -
 drivers/media/video/bt8xx/bttv-input.c         |   15 
 drivers/media/video/cx18/cx18-i2c.c            |    2 
 drivers/media/video/cx231xx/cx231xx-input.c    |    9 
 drivers/media/video/cx23885/Kconfig            |    2 
 drivers/media/video/cx23885/cx23885-input.c    |   21 
 drivers/media/video/cx23885/cx23888-ir.c       |   93 +
 drivers/media/video/cx25840/cx25840-ir.c       |   96 +
 drivers/media/video/cx88/Kconfig               |    2 
 drivers/media/video/cx88/cx88-input.c          |   43 -
 drivers/media/video/em28xx/em28xx-cards.c      |   15 
 drivers/media/video/em28xx/em28xx-input.c      |   38 -
 drivers/media/video/em28xx/em28xx.h            |    1 
 drivers/media/video/hdpvr/hdpvr-i2c.c          |    2 
 drivers/media/video/ir-kbd-i2c.c               |   30 
 drivers/media/video/ivtv/ivtv-i2c.c            |   10 
 drivers/media/video/pvrusb2/pvrusb2-i2c-core.c |    4 
 drivers/media/video/saa7134/Kconfig            |    2 
 drivers/media/video/saa7134/saa7134-input.c    |   12 
 drivers/media/video/saa7134/saa7134.h          |    2 
 drivers/media/video/tm6000/tm6000-cards.c      |    2 
 drivers/media/video/tm6000/tm6000-input.c      |   79 +
 include/media/ir-kbd-i2c.h                     |    2 
 include/media/rc-core.h                        |  404 +++++-
 include/media/rc-ir-raw.h                      |   78 +
 include/media/rc-map.h                         |   88 +
 81 files changed, 3949 insertions(+), 2960 deletions(-)
 delete mode 100644 drivers/media/rc/ir-raw.c
 delete mode 100644 drivers/media/rc/ir-rc5-sz-decoder.c
 create mode 100644 drivers/media/rc/rc-ir-raw.c
 create mode 100644 drivers/media/rc/rc-keytable.c
 create mode 100644 include/media/rc-ir-raw.h

-- 
David Härdeman

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux