saa7134: add support for one more remote control for Avermedia M135A
This change adds support for one more remote control type for Avermedia M135A. The new remote control reports slightly different codes, and was necessary to extend the mask_keycode to differentiate between original remote control. One of the remote controls I had matched the original binding, but some keys reported duplicated codes, probably because the previous mask_keycode missing valid bits, so this should fix also original remote control support ("The keys bellow aren't ok" comment).
Signed-off-by Herton Ronaldo Krzesinski <[email protected]>
--- drivers/media/IR/ir-keymaps.c | 141 +++++++++++++++++++--------- drivers/media/video/saa7134/saa7134-input.c | 2 2 files changed, 97 insertions(+), 46 deletions(-)
drivers/media/IR/ir-keymaps.c renamed from drivers/media/IR/ir-keymaps.c.orig +96 -45
@@ -122,51 +122,102 @@ EXPORT_SYMBOL_GPL(ir_codes_avermedia_dvb/* Mauro Carvalho Chehab <[email protected]> */ static struct ir_scancode ir_codes_avermedia_m135a[] = { - {0x00 ,KEY_POWER2 }, - {0x2e ,KEY_DOT },/* '.' */ - {0x01 ,KEY_MODE },/* TV/FM */ - - {0x05 ,KEY_1 }, - {0x06 ,KEY_2 }, - {0x07 ,KEY_3 }, - {0x09 ,KEY_4 }, - {0x0a ,KEY_5 }, - {0x0b ,KEY_6 }, - {0x0d ,KEY_7 }, - {0x0e ,KEY_8 }, - {0x0f ,KEY_9 }, - {0x11 ,KEY_0 }, - - {0x13 ,KEY_RIGHT },/* -> */ - {0x12 ,KEY_LEFT },/* <- */ - - {0x17 ,KEY_SLEEP },/* Capturar Imagem */ - {0x10 ,KEY_SHUFFLE },/* Amostra */ - -/* FIXME: The keys bellow aren't ok */ - - {0x43 ,KEY_CHANNELUP }, - {0x42 ,KEY_CHANNELDOWN }, - {0x1f ,KEY_VOLUMEUP }, - {0x1e ,KEY_VOLUMEDOWN }, - {0x0c ,KEY_ENTER }, - - {0x14 ,KEY_MUTE }, - {0x08 ,KEY_AUDIO }, - - {0x03 ,KEY_TEXT }, - {0x04 ,KEY_EPG }, - {0x2b ,KEY_TV2 },/* TV2 */ - - {0x1d ,KEY_RED }, - {0x1c ,KEY_YELLOW }, - {0x41 ,KEY_GREEN }, - {0x40 ,KEY_BLUE }, - - {0x1a ,KEY_PLAYPAUSE }, - {0x19 ,KEY_RECORD }, - {0x18 ,KEY_PLAY }, - {0x1b ,KEY_STOP }, +/* Remote control type 01 (32/54 keys) */ + {0x100 ,KEY_POWER2 }, + {0x12e ,KEY_DOT },/* '.' */ + {0x101 ,KEY_MODE },/* TV/FM */ + + {0x105 ,KEY_1 }, + {0x106 ,KEY_2 }, + {0x107 ,KEY_3 }, + {0x109 ,KEY_4 }, + {0x10a ,KEY_5 }, + {0x10b ,KEY_6 }, + {0x10d ,KEY_7 }, + {0x10e ,KEY_8 }, + {0x10f ,KEY_9 }, + {0x111 ,KEY_0 }, + + {0x113 ,KEY_RIGHT },/* -> */ + {0x112 ,KEY_LEFT },/* <- */ + + {0x117 ,KEY_SHUFFLE },/* Capturar Imagem */ + {0x110 ,KEY_F13 },/* Amostra */ + + {0x183 ,KEY_CHANNELUP }, + {0x182 ,KEY_CHANNELDOWN }, + {0x11f ,KEY_VOLUMEUP }, + {0x11e ,KEY_VOLUMEDOWN }, + {0x10c ,KEY_ENTER }, + + {0x114 ,KEY_MUTE }, + {0x108 ,KEY_AUDIO }, + + {0x103 ,KEY_TEXT }, + {0x104 ,KEY_EPG }, + {0x12b ,KEY_TV2 },/* TV2 */ + + {0x11d ,KEY_RED }, + {0x11c ,KEY_YELLOW }, + {0x181 ,KEY_GREEN }, + {0x180 ,KEY_BLUE }, + + {0x11a ,KEY_PLAYPAUSE }, + {0x119 ,KEY_RECORD }, + {0x118 ,KEY_PLAY }, + {0x11b ,KEY_STOP }, + +/* Remote control type 04 (44 keys) */ + {0x201 ,KEY_POWER2 }, + {0x206 ,KEY_MUTE }, + {0x208 ,KEY_MODE }, + + {0x209 ,KEY_1 }, + {0x20a ,KEY_2 }, + {0x20b ,KEY_3 }, + {0x20c ,KEY_4 }, + {0x20d ,KEY_5 }, + {0x20e ,KEY_6 }, + {0x20f ,KEY_7 }, + {0x210 ,KEY_8 }, + {0x211 ,KEY_9 }, + {0x24c ,KEY_DOT }, + {0x212 ,KEY_0 }, + {0x207 ,KEY_LAST }, + + {0x213 ,KEY_AUDIO }, + {0x240 ,KEY_ZOOM }, + {0x241 ,KEY_HOME }, + {0x242 ,KEY_BACK }, + {0x247 ,KEY_UP }, + {0x248 ,KEY_DOWN }, + {0x249 ,KEY_LEFT }, + {0x24a ,KEY_RIGHT }, + {0x24b ,KEY_OK }, + {0x204 ,KEY_VOLUMEUP }, + {0x205 ,KEY_VOLUMEDOWN }, + {0x202 ,KEY_CHANNELUP }, + {0x203 ,KEY_CHANNELDOWN }, + + {0x243 ,KEY_TV }, + {0x244 ,KEY_VIDEO }, + {0x245 ,KEY_MP3 }, + {0x246 ,KEY_MHP }, + + {0x214 ,KEY_TEXT }, + {0x215 ,KEY_EPG }, + {0x21a ,KEY_MEDIA }, + {0x21b ,KEY_SHUFFLE }, + + {0x217 ,KEY_RECORD }, + {0x216 ,KEY_PLAYPAUSE }, + {0x218 ,KEY_STOP }, + {0x219 ,KEY_PAUSE }, + + {0x21f ,KEY_PREVIOUS }, + {0x21d ,KEY_REWIND }, + {0x21c ,KEY_FORWARD }, + {0x21e ,KEY_NEXT }, };struct ir_scancode_table ir_codes_avermedia_m135a_table = {
drivers/media/video/saa7134/saa7134-input.c renamed from drivers/media/video/saa7134/saa7134-input.c.orig +1 -1
@@ -523,7 +523,7 @@ int saa7134_input_init1(struct saa7134_dcase SAA7134_BOARD_AVERMEDIA_M135A : ir_codes = &ir_codes_avermedia_m135a_table; mask_keydown =0x0040000 ; - mask_keycode =0x00013f ; + mask_keycode =0x00077f ; nec_gpio =1 ;break ;case SAA7134_BOARD_AVERMEDIA_777 :