linux/include/media
Jarod Wilson f5f2cc646a [media] rc-core support for Microsoft IR keyboard/mouse
This is a custom IR protocol decoder, for the RC-6-ish protocol used by
the Microsoft Remote Keyboard, apparently developed internally at
Microsoft, and officially dubbed MCIR-2, per their March 2011 remote and
transceiver requirements and specifications document, which also touches
on this IR keyboard/mouse device.

Its a standard keyboard with embedded thumb stick mouse pointer and
mouse buttons, along with a number of media keys. The media keys are
standard RC-6, identical to the signals from the stock MCE remotes, and
will be handled as such. The keyboard and mouse signals will be decoded
and delivered to the system by an input device registered specifically
by this driver.

Successfully tested with multiple mceusb-driven transceivers, as well as
with fintek-cir and redrat3 hardware. Essentially, any raw IR hardware
with enough sampling resolution should be able to use this decoder,
nothing about it is at all receiver-hardware-specific.

This work is inspired by lirc_mod_mce:

The documentation there and code aided in understanding and decoding the
protocol, but the bulk of the code is actually borrowed more from the
existing in-kernel decoders than anything. I did recycle the keyboard
keycode table, a few defines, and some of the keyboard and mouse data
parsing bits from lirc_mod_mce though.

Special thanks to James Meyer for providing the hardware, and being
patient with me as I took forever to get around to writing this.

callback routine to ensure we don't get any stuck keys, and used
symbolic names for the keytable. Also cc'ing Florian this time, who I
believe is the original mod-mce author...

CC: Florian Demski <fdemski@users.sourceforge.net>
Signed-off-by: Jarod Wilson <jarod@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-07-27 17:55:59 -03:00
..
davinci [media] davinci vpbe: VENC( Video Encoder) implementation 2011-07-27 17:53:10 -03:00
adp1653.h [media] adp1653: Add driver for LED flash controller 2011-07-27 17:55:39 -03:00
adv7343.h V4L/DVB (11743): Analog Devices ADV7343 video encoder driver 2009-06-16 18:20:59 -03:00
ak881x.h V4L/DVB: V4L: v4l2-subdev driver for AK8813 and AK8814 TV-encoders from AKM 2010-05-19 12:58:02 -03:00
atmel-isi.h [media] V4L: at91: add Atmel Image Sensor Interface (ISI) support 2011-07-27 17:53:23 -03:00
bt819.h [media] bt819: the ioctls in the header are internal to the kernel 2010-12-29 08:17:19 -02:00
cs53l32a.h
cs5345.h V4L/DVB (6869): cs5345: new i2c driver 2008-01-25 19:04:08 -02:00
cx2341x.h [media] v4l2-ctrls: use const char * const * for the menu arrays 2010-12-30 08:02:14 -02:00
cx25840.h V4L/DVB: cx25840/ivtv: replace ugly priv control with s_config 2010-08-08 23:43:05 -03:00
i2c-addr.h V4L/DVB (9940): bt832: remove this driver 2008-12-30 09:39:25 -02:00
ir-kbd-i2c.h [media] rc: Rename remote controller type to rc_type instead of ir_type 2010-12-29 08:16:50 -02:00
lirc_dev.h [media] lirc_dev: store cdev in irctl, up maxdevs 2011-06-11 09:03:20 -03:00
lirc.h Fix common misspellings 2011-03-31 11:26:23 -03:00
m5mols.h [media] m5mols: Use proper email address format 2011-06-11 09:46:00 -03:00
m52790.h V4L/DVB (6486): m52790: add new Mitsubishi A/V switch i2c driver 2008-01-25 19:01:46 -02:00
media-device.h [media] media: Links setup 2011-03-22 04:53:16 -03:00
media-devnode.h [media] media: Media device node support 2011-03-22 04:52:22 -03:00
media-entity.h [media] media: Pipelines and media streams 2011-03-22 04:53:17 -03:00
mmp-camera.h [media] marvell-cam: Basic working MMP camera driver 2011-07-27 17:53:01 -03:00
msp3400.h V4L/DVB (11380): v4l2-subdev: change s_routing prototype 2009-04-06 21:44:27 -03:00
mt9t112.h V4L/DVB (13670): soc-camera: Add mt9t112 camera driver 2009-12-16 09:27:41 -02:00
mt9v011.h [media] v4l2-subdev: remove core.s_config and v4l2_i2c_new_subdev_cfg() 2011-01-19 11:45:30 -02:00
mt9v032.h [media] v4l: Add mt9v032 sensor driver 2011-05-20 09:29:49 -03:00
noon010pc30.h [media] Add v4l2 subdev driver for NOON010PC30L image sensor 2011-03-21 20:31:40 -03:00
omap1_camera.h [media] SoC Camera: add driver for OMAP1 camera interface 2010-10-21 07:55:37 -02:00
ov772x.h soc-camera: ov772x: Modify buswidth control 2010-02-26 15:11:00 -03:00
ov7670.h [media] marvell-cam: Move cafe-ccic into its own directory 2011-07-27 17:53:00 -03:00
pwc-ioctl.h v4l-dvb: remove legacy checks to allow support for kernels < 2.6.10 2008-07-20 07:17:52 -03:00
radio-si4713.h V4L/DVB (12551): FM TX: si4713: Add files to add radio interface for si4713 2009-09-12 12:19:19 -03:00
rc-core.h [media] rc-core: lirc use unsigned int 2011-07-27 17:52:59 -03:00
rc-map.h [media] rc-core support for Microsoft IR keyboard/mouse 2011-07-27 17:55:59 -03:00
rj54n1cb0c.h V4L/DVB (13661): rj54n1cb0c: Add cropping, auto white balance, restrict sizes, add platform data 2009-12-16 09:27:30 -02:00
s5p_fimc.h [media] s5p-fimc: Add a platform data entry for MIPI-CSI data alignment 2011-03-22 04:54:18 -03:00
saa6588.h [media] saa6588: rename rds.h to saa6588.h 2010-12-29 08:17:18 -02:00
saa6752hs.h
saa7115.h V4L/DVB (8940): saa7115: fix saa7111(a) support 2008-10-12 09:37:00 -02:00
saa7127.h
saa7146_vv.h V4L/DVB: saa7146: fix regression of the av7110/budget-av driver 2010-05-06 19:20:50 -03:00
saa7146.h [media] saa7146: Convert from .ioctl to .unlocked_ioctl 2011-01-19 11:28:10 -02:00
sh_mobile_ceu.h V4L/DVB: V4L2: sh_mobile_camera_ceu: add support for CSI2 2010-08-02 16:43:40 -03:00
sh_mobile_csi2.h V4L/DVB: V4L2: soc-camera: add a MIPI CSI-2 driver for SH-Mobile platforms 2010-08-02 16:43:39 -03:00
sh_vou.h [media] sh_vou: Don't use module names to load I2C modules 2010-10-22 21:53:33 -02:00
si4713.h [media] radio-si4713: Add regulator framework support 2010-12-29 08:16:35 -02:00
soc_camera_platform.h [media] V4L: soc_camera_platform: add helper functions to manage device instances 2011-05-20 07:26:14 -03:00
soc_camera.h [media] V4L: soc-camera: remove several now unused soc-camera client operations 2011-07-27 17:53:23 -03:00
soc_mediabus.h [media] V4L: soc-camera: add a new packing for YUV 4:2:0 type formats 2011-05-20 12:05:08 -03:00
sr030pc30.h [media] Add driver for Siliconfile SR030PC30 VGA camera 2010-10-21 07:55:49 -02:00
timb_radio.h [media] radio-timb: Simplified platform data 2011-07-27 17:53:07 -03:00
timb_video.h [media] media: Add timberdale video-in driver 2010-12-29 08:16:46 -02:00
tuner-types.h V4L/DVB (7352): tuner-simple: enable digital tuning support for Philips FMD1216ME 2008-04-24 14:07:50 -03:00
tuner.h [media] dib0700: add initial code for PCTV 340e by Davide Ferri 2011-07-27 17:52:25 -03:00
tvaudio.h V4L/DVB (11376): tvaudio.h: add static inline to retrieve the list of possible i2c addrs. 2009-04-06 21:44:25 -03:00
tveeprom.h V4L/DVB (8479): tveeprom/ivtv: fix usage of has_ir field 2008-07-26 12:54:42 -03:00
tvp514x.h V4L/DVB (12246): tvp514x: Migration to sub-device framework 2009-09-19 00:18:09 -03:00
tvp5150.h
tvp7002.h V4L/DVB: Definitions for TVP7002 in DM365 2010-02-26 15:11:01 -03:00
tw9910.h tw9910: use TABs for indentation 2010-02-26 15:10:59 -03:00
upd64031a.h
upd64083.h
v4l2-chip-ident.h [media] marvell-cam: Basic working MMP camera driver 2011-07-27 17:53:01 -03:00
v4l2-common.h [media] v4l2_prio: move from v4l2-common to v4l2-dev 2011-03-22 16:37:54 -03:00
v4l2-ctrls.h [media] v4l2-ctrls/v4l2-events: small coding style cleanups 2011-07-27 17:53:34 -03:00
v4l2-dev.h [media] v4l: Fix media_entity_to_video_device macro argument name 2011-06-01 09:42:03 -03:00
v4l2-device.h [media] v4l2-device: fix a macro definition 2011-04-13 09:53:29 -03:00
v4l2-event.h [media] v4l2-event.h: add overview documentation to the header 2011-07-27 17:53:34 -03:00
v4l2-fh.h [media] v4l2-event/ctrls/fh: allocate events per fh and per type instead of just per-fh 2011-07-27 17:53:31 -03:00
v4l2-int-device.h V4L/DVB (10141): v4l2: debugging API changed to match against driver name instead of ID. 2009-01-02 17:11:52 -02:00
v4l2-ioctl.h [media] v4l2-ioctl: add priority handling support 2011-03-22 16:37:59 -03:00
v4l2-mediabus.h [media] v4l: Move the media/v4l2-mediabus.h header to include/linux 2011-03-22 04:53:21 -03:00
v4l2-mem2mem.h [media] Update Pawel Osciak's e-mail address 2011-03-22 04:55:05 -03:00
v4l2-subdev.h [media] v4l2-event/ctrls/fh: allocate events per fh and per type instead of just per-fh 2011-07-27 17:53:31 -03:00
videobuf2-core.h [media] Update Pawel Osciak's e-mail address 2011-03-22 04:55:05 -03:00
videobuf2-dma-contig.h [media] videobuf2-dma-contig: make cookie() return a pointer to dma_addr_t 2011-03-22 19:41:58 -03:00
videobuf2-dma-sg.h [media] v4l: videobuf2: add DMA scatter/gather allocator 2011-03-21 20:31:34 -03:00
videobuf2-memops.h [media] Update Pawel Osciak's e-mail address 2011-03-22 04:55:05 -03:00
videobuf2-vmalloc.h [media] Update Pawel Osciak's e-mail address 2011-03-22 04:55:05 -03:00
videobuf-core.h [media] V4L: remove V4L1 compatibility mode 2010-12-29 08:17:07 -02:00
videobuf-dma-contig.h V4L/DVB: videobuf: add ext_lock argument to the queue init functions 2010-10-21 01:06:14 -02:00
videobuf-dma-sg.h V4L/DVB: videobuf: add ext_lock argument to the queue init functions 2010-10-21 01:06:14 -02:00
videobuf-dvb.h [media] Add missing include guard to header file 2011-05-25 21:42:30 -03:00
videobuf-vmalloc.h V4L/DVB: videobuf: add ext_lock argument to the queue init functions 2010-10-21 01:06:14 -02:00
wm8775.h [media] Add proper audio support for Nova-S Plus with wm8775 ADC 2011-03-21 20:32:19 -03:00