Skip to content

IR core improvements

Mauro Carvalho Chehab linux-media 1 version New

Get series with b4
b4 am 20100406151804.52d18112@pedra

Versions newest first

  1. v1 Latest0 of 26 patches 0 repliesNew

Patches in v1 No applies recorded yet

None of the 26 patches the cover letter announces are in this archive.

Reviews trailers per patch

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

Read the v1 thread

Cover letter [PATCH 00/26] IR core improvements

This is the new set of ir-core changes, with several new improvements.

The most remarkable one is that the IR keymaps were removed from ir-common module. Now, they are mapped as separate kernel modules, that can be disabled or enabled as a hole. A future patch may be add a specific CONFIG_foo var for each one, but I think that the better is to first rework on them, removing duplicated keymaps and fixing some key bindings. With the current model, all that a driver needs to know about a table map is its name. As the same model name is passed via sysfs to userspace, it is easy to fully implement the tables on userspace.

Also, several devices are provided with more than one IR model. So, it makes sense to group some of the entries into families.

This series also adds a working decoder for RC-5 protocol, and re-implements the scancode to keycode conversion using a binary search algorithm that costs log2(n), thanks to David patches.

David Härdeman (3):
V4L/DVB: drivers/media/IR - improve keytable code V4L/DVB: ir-core: improve keyup/keydown logic
V4L/DVB: Convert drivers/media/dvb/ttpci/budget-ci.c to use ir-core

Mauro Carvalho Chehab (23):
V4L/DVB: ir-common: Use a function to declare an IR table V4L/DVB: ir-common: re-order keytables by name and remove duplicates V4L/DVB: IR: use IR_KEYTABLE where an IR table is needed V4L/DVB: rename all *_rc_keys to ir_codes_*_nec_table V4L/DVB: ir-common: Use macros to define the keytables V4L/DVB: ir-common: move IR tables from ir-keymaps.c to a separate file V4L/DVB: ir-core: Add support for RC map code register V4L/DVB: Break Remote Controller keymaps into modules V4L/DVB: ir: prepare IR code for a parameter change at register function V4L/DVB: ir-core: Make use of the new IR keymap modules V4L/DVB: ir-common: remove keymap tables from the module V4L/DVB: saa7134: Fix IRQ2 bit names for the register map V4L/DVB: saa7134: Add support for both positive and negative edge IRQ V4L/DVB: ir-core: re-add some debug functions for keytable changes V4L/DVB: ir-nec-decoder: Reimplement the entire decoder
ir-nec-decoder: Cleanups
V4L-DVB: ir-rc5-decoder: Add a decoder for RC-5 IR protocol V4L/DVB: cx88: don't handle IR on Pixelview too fast
V4L-DVB: ir-core: remove the ancillary buffer
V4L/DVB: ir-core: move rc map code to rc-map.h
V4L/DVB: ir-core: Add support for badly-implemented hardware decoders V4L/DVB: re-add enable/disable check to the IR decoders V4L/DVB: ir-rc5-decoder: fix state machine

 drivers/media/IR/Kconfig                           |   11 +
 drivers/media/IR/Makefile                          |    7 +-
 drivers/media/IR/ir-keymaps.c                      | 3203 --------------------
 drivers/media/IR/ir-keytable.c                     |  709 ++---
 drivers/media/IR/ir-nec-decoder.c                  |  323 +-
 drivers/media/IR/ir-raw-event.c                    |   35 +-
 drivers/media/IR/ir-rc5-decoder.c                  |  291 ++
 drivers/media/IR/ir-sysfs.c                        |    4 +-
 drivers/media/IR/keymaps/Kconfig                   |   15 +
 drivers/media/IR/keymaps/Makefile                  |   65 +
 drivers/media/IR/keymaps/rc-adstech-dvb-t-pci.c    |   89 +
 drivers/media/IR/keymaps/rc-apac-viewcomp.c        |   80 +
 drivers/media/IR/keymaps/rc-asus-pc39.c            |   91 +
 drivers/media/IR/keymaps/rc-ati-tv-wonder-hd-600.c |   69 +
 drivers/media/IR/keymaps/rc-avermedia-a16d.c       |   75 +
 drivers/media/IR/keymaps/rc-avermedia-cardbus.c    |   97 +
 drivers/media/IR/keymaps/rc-avermedia-dvbt.c       |   78 +
 .../media/IR/keymaps/rc-avermedia-m135a-rm-jx.c    |   90 +
 drivers/media/IR/keymaps/rc-avermedia.c            |   86 +
 drivers/media/IR/keymaps/rc-avertv-303.c           |   85 +
 drivers/media/IR/keymaps/rc-behold-columbus.c      |  108 +
 drivers/media/IR/keymaps/rc-behold.c               |  141 +
 drivers/media/IR/keymaps/rc-budget-ci-old.c        |   92 +
 drivers/media/IR/keymaps/rc-cinergy-1400.c         |   84 +
 drivers/media/IR/keymaps/rc-cinergy.c              |   78 +
 drivers/media/IR/keymaps/rc-dm1105-nec.c           |   76 +
 drivers/media/IR/keymaps/rc-dntv-live-dvb-t.c      |   78 +
 drivers/media/IR/keymaps/rc-dntv-live-dvbt-pro.c   |   97 +
 drivers/media/IR/keymaps/rc-em-terratec.c          |   69 +
 drivers/media/IR/keymaps/rc-empty.c                |   44 +
 drivers/media/IR/keymaps/rc-encore-enltv-fm53.c    |   81 +
 drivers/media/IR/keymaps/rc-encore-enltv.c         |  112 +
 drivers/media/IR/keymaps/rc-encore-enltv2.c        |   90 +
 drivers/media/IR/keymaps/rc-evga-indtube.c         |   61 +
 drivers/media/IR/keymaps/rc-eztv.c                 |   96 +
 drivers/media/IR/keymaps/rc-flydvb.c               |   77 +
 drivers/media/IR/keymaps/rc-flyvideo.c             |   70 +
 drivers/media/IR/keymaps/rc-fusionhdtv-mce.c       |   98 +
 drivers/media/IR/keymaps/rc-gadmei-rm008z.c        |   81 +
 drivers/media/IR/keymaps/rc-genius-tvgo-a11mce.c   |   84 +
 drivers/media/IR/keymaps/rc-gotview7135.c          |   79 +
 drivers/media/IR/keymaps/rc-hauppauge-new.c        |  100 +
 drivers/media/IR/keymaps/rc-iodata-bctv7e.c        |   88 +
 drivers/media/IR/keymaps/rc-kaiomy.c               |   87 +
 drivers/media/IR/keymaps/rc-kworld-315u.c          |   83 +
 .../media/IR/keymaps/rc-kworld-plus-tv-analog.c    |   99 +
 drivers/media/IR/keymaps/rc-manli.c                |  135 +
 drivers/media/IR/keymaps/rc-msi-tvanywhere-plus.c  |  123 +
 drivers/media/IR/keymaps/rc-msi-tvanywhere.c       |   69 +
 drivers/media/IR/keymaps/rc-nebula.c               |   96 +
 .../media/IR/keymaps/rc-nec-terratec-cinergy-xs.c  |  105 +
 drivers/media/IR/keymaps/rc-norwood.c              |   85 +
 drivers/media/IR/keymaps/rc-npgtech.c              |   80 +
 drivers/media/IR/keymaps/rc-pctv-sedna.c           |   80 +
 drivers/media/IR/keymaps/rc-pinnacle-color.c       |   94 +
 drivers/media/IR/keymaps/rc-pinnacle-grey.c        |   89 +
 drivers/media/IR/keymaps/rc-pinnacle-pctv-hd.c     |   73 +
 drivers/media/IR/keymaps/rc-pixelview-mk12.c       |   83 +
 drivers/media/IR/keymaps/rc-pixelview-new.c        |   83 +
 drivers/media/IR/keymaps/rc-pixelview.c            |   82 +
 .../media/IR/keymaps/rc-powercolor-real-angel.c    |   81 +
 drivers/media/IR/keymaps/rc-proteus-2309.c         |   69 +
 drivers/media/IR/keymaps/rc-purpletv.c             |   81 +
 drivers/media/IR/keymaps/rc-pv951.c                |   78 +
 drivers/media/IR/keymaps/rc-rc5-hauppauge-new.c    |  103 +
 drivers/media/IR/keymaps/rc-rc5-tv.c               |   81 +
 .../media/IR/keymaps/rc-real-audio-220-32-keys.c   |   78 +
 drivers/media/IR/keymaps/rc-tbs-nec.c              |   73 +
 drivers/media/IR/keymaps/rc-terratec-cinergy-xs.c  |   92 +
 drivers/media/IR/keymaps/rc-tevii-nec.c            |   88 +
 drivers/media/IR/keymaps/rc-tt-1500.c              |   82 +
 drivers/media/IR/keymaps/rc-videomate-s350.c       |   85 +
 drivers/media/IR/keymaps/rc-videomate-tv-pvr.c     |   87 +
 drivers/media/IR/keymaps/rc-winfast-usbii-deluxe.c |   82 +
 drivers/media/IR/keymaps/rc-winfast.c              |  102 +
 drivers/media/IR/rc-map.c                          |   90 +
 drivers/media/dvb/dm1105/dm1105.c                  |    2 +-
 drivers/media/dvb/dvb-usb/a800.c                   |    6 +-
 drivers/media/dvb/dvb-usb/af9005-remote.c          |   16 +-
 drivers/media/dvb/dvb-usb/af9005.c                 |    8 +-
 drivers/media/dvb/dvb-usb/af9005.h                 |    4 +-
 drivers/media/dvb/dvb-usb/af9015.c                 |   30 +-
 drivers/media/dvb/dvb-usb/af9015.h                 |   18 +-
 drivers/media/dvb/dvb-usb/anysee.c                 |    6 +-
 drivers/media/dvb/dvb-usb/az6027.c                 |    6 +-
 drivers/media/dvb/dvb-usb/cinergyT2-core.c         |    6 +-
 drivers/media/dvb/dvb-usb/cxusb.c                  |   46 +-
 drivers/media/dvb/dvb-usb/dib0700_devices.c        |   54 +-
 drivers/media/dvb/dvb-usb/dibusb-common.c          |    4 +-
 drivers/media/dvb/dvb-usb/dibusb-mb.c              |    8 +-
 drivers/media/dvb/dvb-usb/dibusb-mc.c              |    2 +-
 drivers/media/dvb/dvb-usb/dibusb.h                 |    2 +-
 drivers/media/dvb/dvb-usb/digitv.c                 |    6 +-
 drivers/media/dvb/dvb-usb/dtt200u.c                |   18 +-
 drivers/media/dvb/dvb-usb/dw2102.c                 |   44 +-
 drivers/media/dvb/dvb-usb/m920x.c                  |   18 +-
 drivers/media/dvb/dvb-usb/nova-t-usb2.c            |   18 +-
 drivers/media/dvb/dvb-usb/opera1.c                 |   16 +-
 drivers/media/dvb/dvb-usb/vp702x.c                 |   12 +-
 drivers/media/dvb/dvb-usb/vp7045.c                 |   12 +-
 drivers/media/dvb/mantis/mantis_input.c            |    2 +-
 drivers/media/dvb/ttpci/budget-ci.c                |   46 +-
 drivers/media/video/bt8xx/bttv-input.c             |   26 +-
 drivers/media/video/cx18/cx18-i2c.c                |    2 +-
 drivers/media/video/cx231xx/cx231xx-input.c        |    2 +-
 drivers/media/video/cx23885/cx23885-input.c        |    4 +-
 drivers/media/video/cx88/cx88-input.c              |   70 +-
 drivers/media/video/em28xx/em28xx-cards.c          |   34 +-
 drivers/media/video/em28xx/em28xx-input.c          |    4 -
 drivers/media/video/em28xx/em28xx.h                |    2 +-
 drivers/media/video/ir-kbd-i2c.c                   |   20 +-
 drivers/media/video/ivtv/ivtv-i2c.c                |    6 +-
 drivers/media/video/saa7134/saa7134-core.c         |   20 +-
 drivers/media/video/saa7134/saa7134-input.c        |   92 +-
 drivers/media/video/saa7134/saa7134-reg.h          |   24 +-
 include/media/ir-common.h                          |   67 -
 include/media/ir-core.h                            |  101 +-
 include/media/ir-kbd-i2c.h                         |    4 +-
 include/media/rc-map.h                             |  117 +
 119 files changed, 7168 insertions(+), 4222 deletions(-)
 delete mode 100644 drivers/media/IR/ir-keymaps.c
 create mode 100644 drivers/media/IR/ir-rc5-decoder.c
 create mode 100644 drivers/media/IR/keymaps/Kconfig
 create mode 100644 drivers/media/IR/keymaps/Makefile
 create mode 100644 drivers/media/IR/keymaps/rc-adstech-dvb-t-pci.c
 create mode 100644 drivers/media/IR/keymaps/rc-apac-viewcomp.c
 create mode 100644 drivers/media/IR/keymaps/rc-asus-pc39.c
 create mode 100644 drivers/media/IR/keymaps/rc-ati-tv-wonder-hd-600.c
 create mode 100644 drivers/media/IR/keymaps/rc-avermedia-a16d.c
 create mode 100644 drivers/media/IR/keymaps/rc-avermedia-cardbus.c
 create mode 100644 drivers/media/IR/keymaps/rc-avermedia-dvbt.c
 create mode 100644 drivers/media/IR/keymaps/rc-avermedia-m135a-rm-jx.c
 create mode 100644 drivers/media/IR/keymaps/rc-avermedia.c
 create mode 100644 drivers/media/IR/keymaps/rc-avertv-303.c
 create mode 100644 drivers/media/IR/keymaps/rc-behold-columbus.c
 create mode 100644 drivers/media/IR/keymaps/rc-behold.c
 create mode 100644 drivers/media/IR/keymaps/rc-budget-ci-old.c
 create mode 100644 drivers/media/IR/keymaps/rc-cinergy-1400.c
 create mode 100644 drivers/media/IR/keymaps/rc-cinergy.c
 create mode 100644 drivers/media/IR/keymaps/rc-dm1105-nec.c
 create mode 100644 drivers/media/IR/keymaps/rc-dntv-live-dvb-t.c
 create mode 100644 drivers/media/IR/keymaps/rc-dntv-live-dvbt-pro.c
 create mode 100644 drivers/media/IR/keymaps/rc-em-terratec.c
 create mode 100644 drivers/media/IR/keymaps/rc-empty.c
 create mode 100644 drivers/media/IR/keymaps/rc-encore-enltv-fm53.c
 create mode 100644 drivers/media/IR/keymaps/rc-encore-enltv.c
 create mode 100644 drivers/media/IR/keymaps/rc-encore-enltv2.c
 create mode 100644 drivers/media/IR/keymaps/rc-evga-indtube.c
 create mode 100644 drivers/media/IR/keymaps/rc-eztv.c
 create mode 100644 drivers/media/IR/keymaps/rc-flydvb.c
 create mode 100644 drivers/media/IR/keymaps/rc-flyvideo.c
 create mode 100644 drivers/media/IR/keymaps/rc-fusionhdtv-mce.c
 create mode 100644 drivers/media/IR/keymaps/rc-gadmei-rm008z.c
 create mode 100644 drivers/media/IR/keymaps/rc-genius-tvgo-a11mce.c
 create mode 100644 drivers/media/IR/keymaps/rc-gotview7135.c
 create mode 100644 drivers/media/IR/keymaps/rc-hauppauge-new.c
 create mode 100644 drivers/media/IR/keymaps/rc-iodata-bctv7e.c
 create mode 100644 drivers/media/IR/keymaps/rc-kaiomy.c
 create mode 100644 drivers/media/IR/keymaps/rc-kworld-315u.c
 create mode 100644 drivers/media/IR/keymaps/rc-kworld-plus-tv-analog.c
 create mode 100644 drivers/media/IR/keymaps/rc-manli.c
 create mode 100644 drivers/media/IR/keymaps/rc-msi-tvanywhere-plus.c
 create mode 100644 drivers/media/IR/keymaps/rc-msi-tvanywhere.c
 create mode 100644 drivers/media/IR/keymaps/rc-nebula.c
 create mode 100644 drivers/media/IR/keymaps/rc-nec-terratec-cinergy-xs.c
 create mode 100644 drivers/media/IR/keymaps/rc-norwood.c
 create mode 100644 drivers/media/IR/keymaps/rc-npgtech.c
 create mode 100644 drivers/media/IR/keymaps/rc-pctv-sedna.c
 create mode 100644 drivers/media/IR/keymaps/rc-pinnacle-color.c
 create mode 100644 drivers/media/IR/keymaps/rc-pinnacle-grey.c
 create mode 100644 drivers/media/IR/keymaps/rc-pinnacle-pctv-hd.c
 create mode 100644 drivers/media/IR/keymaps/rc-pixelview-mk12.c
 create mode 100644 drivers/media/IR/keymaps/rc-pixelview-new.c
 create mode 100644 drivers/media/IR/keymaps/rc-pixelview.c
 create mode 100644 drivers/media/IR/keymaps/rc-powercolor-real-angel.c
 create mode 100644 drivers/media/IR/keymaps/rc-proteus-2309.c
 create mode 100644 drivers/media/IR/keymaps/rc-purpletv.c
 create mode 100644 drivers/media/IR/keymaps/rc-pv951.c
 create mode 100644 drivers/media/IR/keymaps/rc-rc5-hauppauge-new.c
 create mode 100644 drivers/media/IR/keymaps/rc-rc5-tv.c
 create mode 100644 drivers/media/IR/keymaps/rc-real-audio-220-32-keys.c
 create mode 100644 drivers/media/IR/keymaps/rc-tbs-nec.c
 create mode 100644 drivers/media/IR/keymaps/rc-terratec-cinergy-xs.c
 create mode 100644 drivers/media/IR/keymaps/rc-tevii-nec.c
 create mode 100644 drivers/media/IR/keymaps/rc-tt-1500.c
 create mode 100644 drivers/media/IR/keymaps/rc-videomate-s350.c
 create mode 100644 drivers/media/IR/keymaps/rc-videomate-tv-pvr.c
 create mode 100644 drivers/media/IR/keymaps/rc-winfast-usbii-deluxe.c
 create mode 100644 drivers/media/IR/keymaps/rc-winfast.c
 create mode 100644 drivers/media/IR/rc-map.c
 create mode 100644 include/media/rc-map.h