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 -- 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