V4L/DVB: saa7134: use a full scancode table for M135A
authorMauro Carvalho Chehab <mchehab@redhat.com>
Sat, 20 Mar 2010 03:23:30 +0000 (00:23 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Tue, 18 May 2010 03:52:54 +0000 (00:52 -0300)
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/IR/ir-keymaps.c
drivers/media/video/saa7134/saa7134-input.c
include/media/ir-common.h

index dfc777b78dea63058daa053055628da47147d665..55e7acd7209c25cfaf94f9f12947c2e61b3001e7 100644 (file)
@@ -122,55 +122,57 @@ static struct ir_scancode ir_codes_avermedia_dvbt[] = {
 };
 IR_TABLE(avermedia_dvbt, IR_TYPE_UNKNOWN, ir_codes_avermedia_dvbt);
 
-/* Mauro Carvalho Chehab <mchehab@infradead.org> */
-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 },
-};
-IR_TABLE(avermedia_m135a, IR_TYPE_UNKNOWN, ir_codes_avermedia_m135a);
+/*
+ * Avermedia M135A with IR model RM-JX
+ * The same codes exist on both Positivo (BR) and original IR
+ * Mauro Carvalho Chehab <mchehab@infradead.org>
+ */
+static struct ir_scancode ir_codes_avermedia_m135a_rm_jx[] = {
+       { 0x0200, KEY_POWER2 },
+       { 0x022e, KEY_DOT },            /* '.' */
+       { 0x0201, KEY_MODE },           /* TV/FM or SOURCE */
+
+       { 0x0205, KEY_1 },
+       { 0x0206, KEY_2 },
+       { 0x0207, KEY_3 },
+       { 0x0209, KEY_4 },
+       { 0x020a, KEY_5 },
+       { 0x020b, KEY_6 },
+       { 0x020d, KEY_7 },
+       { 0x020e, KEY_8 },
+       { 0x020f, KEY_9 },
+       { 0x0211, KEY_0 },
+
+       { 0x0213, KEY_RIGHT },          /* -> or L */
+       { 0x0212, KEY_LEFT },           /* <- or R */
+
+       { 0x0217, KEY_SLEEP },          /* Capturar Imagem or Snapshot */
+       { 0x0210, KEY_SHUFFLE },        /* Amostra or 16 chan prev */
+
+       { 0x0303, KEY_CHANNELUP },
+       { 0x0302, KEY_CHANNELDOWN },
+       { 0x021f, KEY_VOLUMEUP },
+       { 0x021e, KEY_VOLUMEDOWN },
+       { 0x020c, KEY_ENTER },          /* Full Screen */
+
+       { 0x0214, KEY_MUTE },
+       { 0x0208, KEY_AUDIO },
+
+       { 0x0203, KEY_TEXT },           /* Teletext */
+       { 0x0204, KEY_EPG },
+       { 0x022b, KEY_TV2 },            /* TV2 or PIP */
+
+       { 0x021d, KEY_RED },
+       { 0x021c, KEY_YELLOW },
+       { 0x0301, KEY_GREEN },
+       { 0x0300, KEY_BLUE },
+
+       { 0x021a, KEY_PLAYPAUSE },
+       { 0x0219, KEY_RECORD },
+       { 0x0218, KEY_PLAY },
+       { 0x021b, KEY_STOP },
+};
+IR_TABLE(aver-m135a-RM-JX, IR_TYPE_NEC, ir_codes_avermedia_m135a_rm_jx);
 
 /* Oldrich Jedlicka <oldium.pro@seznam.cz> */
 static struct ir_scancode ir_codes_avermedia_cardbus[] = {
index ac62b77e5edc6fed492d6db46a51a1e6e9cbaf81..241195e8be3dc9bf34365388008f63904bc80ab8 100644 (file)
@@ -525,9 +525,9 @@ int saa7134_input_init1(struct saa7134_dev *dev)
                saa_setb(SAA7134_GPIO_GPSTATUS0, 0x4);
                break;
        case SAA7134_BOARD_AVERMEDIA_M135A:
-               ir_codes     = &ir_codes_avermedia_m135a_table;
+               ir_codes     = &ir_codes_avermedia_m135a_rm_jx_table;
                mask_keydown = 0x0040000;
-               mask_keycode = 0x00013f;
+               mask_keycode = 0xffff;
                nec_gpio     = 1;
                break;
        case SAA7134_BOARD_AVERMEDIA_777:
index c66298062d397ae4bbfcb14caef9cf10a8507581..c30b28384d8db93f17725e7bb5a2a61720354618 100644 (file)
@@ -102,7 +102,7 @@ void ir_rc5_timer_keyup(unsigned long data);
 extern struct ir_scancode_table ir_codes_empty_table;
 extern struct ir_scancode_table ir_codes_avermedia_table;
 extern struct ir_scancode_table ir_codes_avermedia_dvbt_table;
-extern struct ir_scancode_table ir_codes_avermedia_m135a_table;
+extern struct ir_scancode_table ir_codes_avermedia_m135a_rm_jx_table;
 extern struct ir_scancode_table ir_codes_avermedia_cardbus_table;
 extern struct ir_scancode_table ir_codes_apac_viewcomp_table;
 extern struct ir_scancode_table ir_codes_pixelview_table;