[PATCH 5/5] v4l: saa7134: enable ir-remote for 10moons TM300
Using Encore's key codes, we needn't add any additional key table. Signed-off-by: Tony Wan <[EMAIL PROTECTED]> --- drivers/media/video/saa7134/saa7134-cards.c |1 + drivers/media/video/saa7134/saa7134-input.c |6 ++ 2 files changed, 7 insertions(+), 0 deletions(-) diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c index 44f2077..5813509 100644 --- a/drivers/media/video/saa7134/saa7134-cards.c +++ b/drivers/media/video/saa7134/saa7134-cards.c @@ -4368,6 +4368,7 @@ int saa7134_board_init1(struct saa7134_dev *dev) case SAA7134_BOARD_AVERMEDIA_A16AR: case SAA7134_BOARD_ENCORE_ENLTV: case SAA7134_BOARD_ENCORE_ENLTV_FM: + case SAA7134_BOARD_10MOONSTVMASTER3: dev->has_remote = SAA7134_REMOTE_GPIO; break; case SAA7134_BOARD_FLYDVBS_LR300: diff --git a/drivers/media/video/saa7134/saa7134-input.c b/drivers/media/video/saa7134/saa7134-input.c index c0de37e..817d4b6 100644 --- a/drivers/media/video/saa7134/saa7134-input.c +++ b/drivers/media/video/saa7134/saa7134-input.c @@ -333,6 +333,12 @@ int saa7134_input_init1(struct saa7134_dev *dev) mask_keyup = 0x04; polling = 50; // ms break; + case SAA7134_BOARD_10MOONSTVMASTER3: + ir_codes = ir_codes_encore_enltv; + mask_keycode = 0x5f8; + mask_keyup = 0x800; + polling = 50; //ms + break; } if (NULL == ir_codes) { printk("%s: Oops: IR config error [card=%d]\n", - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] v4l: saa7134: support ir-remote for 10moons TM300
On Fri, 2007-05-11 at 13:00 +0400, Nickolay V. Shmyrev wrote: > Probably just remote is the same. Thanks for you correction. So, if I set the mask_keycode to "0x5f8", all the key codes of TM300 will be exactly same as Encore's boards. Then the remote will work with a small patch applied. I'll test it later. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] v4l: saa7134: support ir-remote for 10moons TM300
On Fri, 2007-05-11 at 11:51 +0400, Nickolay V. Shmyrev wrote: > Great, now another correction, sorry for not noticing it before. With > correction of bit 0x4 -> 0x2 your remote is exactly the same as > ir_codes_encore_enltv so probably there is sense just to reuse old > codes. Elencore mask should be reduced too. I also wonder aren't we > talking about the same card here. > > It's interesting. I checked the source code, but I don't think that Elencore and TM300 is the same card. In fact, they have different tuner modules. Or they use the same ir-remote? - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH] v4l: saa7134: support ir-remote for 10moons TM300
Enable the IR-remote of the 10moons TM300 card and add the key-codes for it's remote. It has been tested using lirc. All the key codes are accepted. Signed-off-by: Tony Wan <[EMAIL PROTECTED]> --- drivers/media/common/ir-keymaps.c | 69 +++ drivers/media/video/saa7134/saa7134-cards.c |1 + drivers/media/video/saa7134/saa7134-input.c |6 ++ include/media/ir-common.h |1 + 4 files changed, 77 insertions(+), 0 deletions(-) diff --git a/drivers/media/common/ir-keymaps.c b/drivers/media/common/ir-keymaps.c index cbd1184..5aa293e 100644 --- a/drivers/media/common/ir-keymaps.c +++ b/drivers/media/common/ir-keymaps.c @@ -1783,3 +1783,72 @@ IR_KEYTAB_TYPE ir_codes_tt_1500[IR_KEYTAB_SIZE] = { }; EXPORT_SYMBOL_GPL(ir_codes_tt_1500); + +/* 10MOONS TM300 */ +IR_KEYTAB_TYPE ir_codes_10moonstm3[IR_KEYTAB_SIZE] = { + [ 0x10 ] = KEY_POWER, // Power + [ 0x0d ] = KEY_MUTE,// Mute + [ 0x1e ] = KEY_TUNER, // Cable + [ 0x00 ] = KEY_VIDEO, // Composite / S-Video + [ 0x01 ] = KEY_RADIO, // Music + [ 0x02 ] = KEY_TEXT,// Photo + + [ 0x1f ] = KEY_1, + [ 0x03 ] = KEY_2, + [ 0x04 ] = KEY_3, + [ 0x05 ] = KEY_4, + [ 0x1c ] = KEY_5, + [ 0x06 ] = KEY_6, + [ 0x07 ] = KEY_7, + [ 0x08 ] = KEY_8, + [ 0x1d ] = KEY_9, + [ 0x09 ] = KEY_SELECT, // 2 digit select (-/--) + [ 0x0a ] = KEY_0, + [ 0x0b ] = KEY_AGAIN, // Recall + + [ 0x14 ] = KEY_F1, // Begin + [ 0x15 ] = KEY_F2, // End + + [ 0x16 ] = KEY_CHANNELUP, // CH+ + [ 0x12 ] = KEY_CHANNELDOWN, // CH- + [ 0x0c ] = KEY_VOLUMEUP,// VOL+ + [ 0x17 ] = KEY_VOLUMEDOWN, // VOL- + [ 0x18 ] = KEY_OK, // OK + + [ 0x0e ] = KEY_EXIT,// Exit + [ 0x13 ] = KEY_COMPUTER,// Desktop + [ 0x11 ] = KEY_TAB, // TAB + [ 0x19 ] = KEY_CYCLEWINDOWS,// Switch task + + [ 0x1a ] = KEY_MENU,// Menu + [ 0x1b ] = KEY_ZOOM,// Fullscreen + [ 0x24 ] = KEY_ARCHIVE, // Time shifting + [ 0x20 ] = KEY_SWITCHVIDEOMODE, // Selcect source + + [ 0x3a ] = KEY_RECORD, // Record + [ 0x22 ] = KEY_PLAY,// Play/Pause + [ 0x25 ] = KEY_STOP,// Stop + [ 0x23 ] = KEY_CAMERA, // Snapshot + + [ 0x28 ] = KEY_BACK,// Backward << + [ 0x2a ] = KEY_FORWARD, // Forward >> + [ 0x29 ] = KEY_PREVIOUS,// Back |<< + [ 0x2b ] = KEY_NEXT,// End >>| + + [ 0x2c ] = KEY_PROGRAM, // Multi-view + [ 0x2d ] = KEY_AUDIO, // Audio Tracks + [ 0x2e ] = KEY_SOUND, // Sound + [ 0x2f ] = KEY_SUBTITLE,// Subtitles + + [ 0x30 ] = KEY_TIME,// Set timer + [ 0x31 ] = KEY_CHANNEL, // Stereo + [ 0x32 ] = KEY_LANGUAGE,// Language + [ 0x33 ] = KEY_TEXT,// Text + + [ 0x39 ] = KEY_RED, // RED + [ 0x21 ] = KEY_GREEN, // GREEN + [ 0x27 ] = KEY_YELLOW, // YELLOW + [ 0x37 ] = KEY_BLUE,// BLUE +}; + +EXPORT_SYMBOL_GPL(ir_codes_10moonstm3); diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c index 44f2077..5813509 100644 --- a/drivers/media/video/saa7134/saa7134-cards.c +++ b/drivers/media/video/saa7134/saa7134-cards.c @@ -4368,6 +4368,7 @@ int saa7134_board_init1(struct saa7134_dev *dev) case SAA7134_BOARD_AVERMEDIA_A16AR: case SAA7134_BOARD_ENCORE_ENLTV: case SAA7134_BOARD_ENCORE_ENLTV_FM: + case SAA7134_BOARD_10MOONSTVMASTER3: dev->has_remote = SAA7134_REMOTE_GPIO; break; case SAA7134_BOARD_FLYDVBS_LR300: diff --git a/drivers/media/video/saa7134/saa7134-input.c b/drivers/media/video/saa7134/saa7134-input.c index c0de37e..c87755b 100644 --- a/drivers/media/video/saa7134/saa7134-input.c +++ b/drivers/media/video/saa7134/saa7134-input.c @@ -333,6 +333,12 @@ int saa7134_input_init1(struct saa7134_dev *dev) mask_keyup = 0x04; polling = 50; // ms break; + case SAA7134_BOARD_10MOONSTVMASTER3: + ir_codes = ir_codes_10moonstm3; + mask_keycode = 0x4f8; + mask_keyup = 0x800; + polling = 50; //ms + break; } if (NULL == ir_codes) { printk("%s: Oops: IR config error [card=%d]\n", diff --git a/include/media/ir-common.h b/include/media/ir-common.h index 9807a7c..4e4d207 100644 --- a/include/media/ir-common.h +++ b/include/media/ir-common.h @@ -140,6 +140,7
Re: [PATCH 2/3] v4l: saa7134: enable ir-remote for 10moons TM300 card
Hi, Nickolay: Thanks for you suggestion! On Thu, 2007-05-10 at 10:14 +0400, Nickolay V. Shmyrev wrote: > Size of 256 is not required. You've just selected incorrect keymask, > that's why you have so big values. Look through your values, in the > upper 4 bits only two bits are used - 0x80 and 0x10. So you should > probably use mask_keycode with 0x4780 instead of mask_keycode = > 0x7f8. Or even smaller mask. Include only bits which change the > values, nothing more. > The key codes confused me for some time and now I get solutions. I'll change the mask value and calculate the new codes later. Best regards. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH 2/3] v4l: saa7134: enable ir-remote for 10moons TM300 card
Enable the IR-remote of the 10moons TM300 card and add the key-codes for it's remote. But to enable all the keys, "IR_KEYTAB_SIZE", the size of code tables should be at least 256. It has been tested using lirc. All the key codes are accepted. This patch depends on the "[PATCH 1/3] v4l: Support 10moons TM300 (saa7130) Card" Signed-off-by: Tony Wan <[EMAIL PROTECTED]> --- drivers/media/common/ir-keymaps.c | 71 +++ drivers/media/video/saa7134/saa7134-cards.c |1 + drivers/media/video/saa7134/saa7134-input.c |6 ++ include/media/ir-common.h |1 + 4 files changed, 79 insertions(+), 0 deletions(-) diff --git a/drivers/media/common/ir-keymaps.c b/drivers/media/common/ir-keymaps.c index cbd1184..df11ed4 100644 --- a/drivers/media/common/ir-keymaps.c +++ b/drivers/media/common/ir-keymaps.c @@ -1783,3 +1783,74 @@ IR_KEYTAB_TYPE ir_codes_tt_1500[IR_KEYTAB_SIZE] = { }; EXPORT_SYMBOL_GPL(ir_codes_tt_1500); + +/* 10MOONS TM300 */ +IR_KEYTAB_TYPE ir_codes_10moonstm3[IR_KEYTAB_SIZE] = { + [ 0x10 ] = KEY_POWER, // Power + [ 0x0d ] = KEY_MUTE,// Mute + [ 0x1e ] = KEY_TUNER, // Cable + [ 0x00 ] = KEY_VIDEO, // Composite / S-Video + [ 0x01 ] = KEY_RADIO, // Music + [ 0x02 ] = KEY_TEXT,// Photo + + [ 0x1f ] = KEY_1, + [ 0x03 ] = KEY_2, + [ 0x04 ] = KEY_3, + [ 0x05 ] = KEY_4, + [ 0x1c ] = KEY_5, + [ 0x06 ] = KEY_6, + [ 0x07 ] = KEY_7, + [ 0x08 ] = KEY_8, + [ 0x1d ] = KEY_9, + [ 0x09 ] = KEY_SELECT, // 2 digit select (-/--) + [ 0x0a ] = KEY_0, + [ 0x0b ] = KEY_AGAIN, // Recall + + [ 0x14 ] = KEY_F1, // Begin + [ 0x15 ] = KEY_F2, // End + + [ 0x16 ] = KEY_CHANNELUP, // CH+ + [ 0x12 ] = KEY_CHANNELDOWN, // CH- + [ 0x0c ] = KEY_VOLUMEUP,// VOL+ + [ 0x17 ] = KEY_VOLUMEDOWN, // VOL- + [ 0x18 ] = KEY_OK, // OK + + [ 0x0e ] = KEY_EXIT,// Exit + [ 0x13 ] = KEY_COMPUTER,// Desktop + [ 0x11 ] = KEY_TAB, // TAB + [ 0x19 ] = KEY_CYCLEWINDOWS,// Switch task + + [ 0x1a ] = KEY_MENU,// Menu + [ 0x1b ] = KEY_ZOOM,// Fullscreen +#if IR_KEYTAB_SIZE>=256 + [ 0x84 ] = KEY_ARCHIVE, // Time shifting + [ 0x80 ] = KEY_SWITCHVIDEOMODE, // Selcect source + + [ 0x9a ] = KEY_RECORD, // Record + [ 0x82 ] = KEY_PLAY,// Play/Pause + [ 0x85 ] = KEY_STOP,// Stop + [ 0x83 ] = KEY_CAMERA, // Snapshot + + [ 0x88 ] = KEY_BACK,// Backward << + [ 0x8a ] = KEY_FORWARD, // Forward >> + [ 0x89 ] = KEY_PREVIOUS,// Back |<< + [ 0x8b ] = KEY_NEXT,// End >>| + + [ 0x8c ] = KEY_PROGRAM, // Multi-view + [ 0x8d ] = KEY_AUDIO, // Audio Tracks + [ 0x8e ] = KEY_SOUND, // Sound + [ 0x8f ] = KEY_SUBTITLE,// Subtitles + + [ 0x90 ] = KEY_TIME,// Set timer + [ 0x91 ] = KEY_CHANNEL, // Stereo + [ 0x92 ] = KEY_LANGUAGE,// Language + [ 0x93 ] = KEY_TEXT,// Text + + [ 0x99 ] = KEY_RED, // RED + [ 0x81 ] = KEY_GREEN, // GREEN + [ 0x87 ] = KEY_YELLOW, // YELLOW + [ 0x97 ] = KEY_BLUE,// BLUE +#endif /* IR_KEYTAB_SIZE>=256 */ +}; + +EXPORT_SYMBOL_GPL(ir_codes_10moonstm3); diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c index 44f2077..5813509 100644 --- a/drivers/media/video/saa7134/saa7134-cards.c +++ b/drivers/media/video/saa7134/saa7134-cards.c @@ -4368,6 +4368,7 @@ int saa7134_board_init1(struct saa7134_dev *dev) case SAA7134_BOARD_AVERMEDIA_A16AR: case SAA7134_BOARD_ENCORE_ENLTV: case SAA7134_BOARD_ENCORE_ENLTV_FM: + case SAA7134_BOARD_10MOONSTVMASTER3: dev->has_remote = SAA7134_REMOTE_GPIO; break; case SAA7134_BOARD_FLYDVBS_LR300: diff --git a/drivers/media/video/saa7134/saa7134-input.c b/drivers/media/video/saa7134/saa7134-input.c index c0de37e..5511aff 100644 --- a/drivers/media/video/saa7134/saa7134-input.c +++ b/drivers/media/video/saa7134/saa7134-input.c @@ -333,6 +333,12 @@ int saa7134_input_init1(struct saa7134_dev *dev) mask_keyup = 0x04; polling = 50; // ms break; + case SAA7134_BOARD_10MOONSTVMASTER3: + ir_codes = ir_codes_10moonstm3; + mask_keycode = 0x7f8; + mask_keyup = 0x800; + polling = 50; //ms + break; } if (NULL == ir_codes)
[PATCH 3/3] v4l: enlarge the size of ir-key table to 256
Some IR-remote will produce key codes larger than 128. Enlarge the size IR_KEYTAB_SIZE to 256 to enable all the keys. Signed-off-by: Tony Wan <[EMAIL PROTECTED]> --- include/media/ir-common.h |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/include/media/ir-common.h b/include/media/ir-common.h index 4e4d207..5355ebc 100644 --- a/include/media/ir-common.h +++ b/include/media/ir-common.h @@ -31,7 +31,7 @@ #define IR_TYPE_OTHER 99 #define IR_KEYTAB_TYPE u32 -#define IR_KEYTAB_SIZE 128 // enougth for rc5, probably need more some day ... +#define IR_KEYTAB_SIZE 256 // some remote needs 8-bit keycodes #define IR_KEYCODE(tab,code) (((unsigned)code < IR_KEYTAB_SIZE) \ ? tab[code] : KEY_RESERVED) - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH 1/3] v4l: saa7134: add support for 10moons TM300 card
Support the 10moons TM300 TV card (so called TV Master 3), which is a 10moons saa7130 based board. Here not include features for the IR-remote. It has been tested using TVTIME. The card was auto-detected and all the input sources worked correct with sound. Signed-off-by: Tony Wan <[EMAIL PROTECTED]> --- drivers/media/video/saa7134/saa7134-cards.c | 38 +++ drivers/media/video/saa7134/saa7134.h |1 + 2 files changed, 39 insertions(+), 0 deletions(-) diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c index 50f15ad..44f2077 100644 --- a/drivers/media/video/saa7134/saa7134-cards.c +++ b/drivers/media/video/saa7134/saa7134-cards.c @@ -3502,6 +3502,38 @@ struct saa7134_board saa7134_boards[] = { .amux = TV, }, }, + [SAA7134_BOARD_10MOONSTVMASTER3] = { + /* Tony Wan <[EMAIL PROTECTED]> */ + .name = "10MOONS TM300 TV Card", + .audio_clock= 0x0020, + .tuner_type = TUNER_LG_PAL_NEW_TAPC, + .radio_type = UNSET, + .tuner_addr = ADDR_UNSET, + .radio_addr = ADDR_UNSET, + .gpiomask = 0x7000, + .inputs = {{ + .name = name_tv, + .vmux = 1, + .amux = LINE2, + .gpio = 0x, + .tv = 1, + },{ + .name = name_comp1, + .vmux = 3, + .amux = LINE1, + .gpio = 0x2000, + },{ + .name = name_svideo, + .vmux = 8, + .amux = LINE1, + .gpio = 0x2000, + }}, + .mute = { + .name = name_mute, + .amux = LINE2, + .gpio = 0x3000, + }, + }, }; const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards); @@ -4219,6 +4251,12 @@ struct pci_device_id saa7134_pci_tbl[] = { .subdevice= 0x2003, /* OEM cardbus */ .driver_data = SAA7134_BOARD_SABRENT_TV_PCB05, },{ + .vendor = PCI_VENDOR_ID_PHILIPS, + .device = PCI_DEVICE_ID_PHILIPS_SAA7130, + .subvendor= PCI_VENDOR_ID_PHILIPS, + .subdevice= 0x2304, + .driver_data = SAA7134_BOARD_10MOONSTVMASTER3, + },{ /* --- boards without eeprom + subsystem ID --- */ .vendor = PCI_VENDOR_ID_PHILIPS, .device = PCI_DEVICE_ID_PHILIPS_SAA7134, diff --git a/drivers/media/video/saa7134/saa7134.h b/drivers/media/video/saa7134/saa7134.h index 15623b2..6389c0e 100644 --- a/drivers/media/video/saa7134/saa7134.h +++ b/drivers/media/video/saa7134/saa7134.h @@ -238,6 +238,7 @@ struct saa7134_format { #define SAA7134_BOARD_ECS_TVP3XP_4CB6 113 #define SAA7134_BOARD_KWORLD_DVBT_210 114 #define SAA7134_BOARD_SABRENT_TV_PCB05 115 +#define SAA7134_BOARD_10MOONSTVMASTER3 116 #define SAA7134_MAXBOARDS 8 #define SAA7134_INPUT_MAX 8 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH 1/3] v4l: Support 10moons TM300 (saa7130) Card
Support the 10moons TM300 TV card (so called TV Master 3), which is a 10moons saa7130 based new board. Here not include features for the IR-remote. It has been tested using TVTIME. The card was auto-detected and all the input sources worked correct with sound. Signed-off-by: Tony Wan <[EMAIL PROTECTED]> --- drivers/media/video/saa7134/saa7134-cards.c | 38 +++ drivers/media/video/saa7134/saa7134.h |1 + 2 files changed, 39 insertions(+), 0 deletions(-) diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c index 4ea479b..c89d0ef 100644 --- a/drivers/media/video/saa7134/saa7134-cards.c +++ b/drivers/media/video/saa7134/saa7134-cards.c @@ -3407,6 +3407,38 @@ struct saa7134_board saa7134_boards[] = { .gpio = 0x020, }, }, + [SAA7134_BOARD_10MOONSTVMASTER3] = { + /* Tony Wan <[EMAIL PROTECTED]> */ + .name = "10MOONS TM300 TV Card", + .audio_clock= 0x0020, + .tuner_type = TUNER_LG_PAL_NEW_TAPC, + .radio_type = UNSET, + .tuner_addr = ADDR_UNSET, + .radio_addr = ADDR_UNSET, + .gpiomask = 0x7000, + .inputs = {{ + .name = name_tv, + .vmux = 1, + .amux = LINE2, + .gpio = 0x, + .tv = 1, + },{ + .name = name_comp1, + .vmux = 3, + .amux = LINE1, + .gpio = 0x2000, + },{ + .name = name_svideo, + .vmux = 8, + .amux = LINE1, + .gpio = 0x2000, + }}, + .mute = { + .name = name_mute, + .amux = LINE2, + .gpio = 0x3000, + }, + }, }; const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards); @@ -4100,6 +4132,12 @@ struct pci_device_id saa7134_pci_tbl[] = { .subdevice= 0x4857, .driver_data = SAA7134_BOARD_ASUSTeK_P7131_DUAL, },{ + .vendor = PCI_VENDOR_ID_PHILIPS, + .device = PCI_DEVICE_ID_PHILIPS_SAA7130, + .subvendor= PCI_VENDOR_ID_PHILIPS, + .subdevice= 0x2304, + .driver_data = SAA7134_BOARD_10MOONSTVMASTER3, + },{ /* --- boards without eeprom + subsystem ID --- */ .vendor = PCI_VENDOR_ID_PHILIPS, .device = PCI_DEVICE_ID_PHILIPS_SAA7134, diff --git a/drivers/media/video/saa7134/saa7134.h b/drivers/media/video/saa7134/saa7134.h index 62224cc..07a155e 100644 --- a/drivers/media/video/saa7134/saa7134.h +++ b/drivers/media/video/saa7134/saa7134.h @@ -235,6 +235,7 @@ struct saa7134_format { #define SAA7134_BOARD_AVERMEDIA_M102 110 #define SAA7134_BOARD_ASUS_P7131_4871 111 #define SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA 112 +#define SAA7134_BOARD_10MOONSTVMASTER3 113 #define SAA7134_MAXBOARDS 8 #define SAA7134_INPUT_MAX 8 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH 2/3] v4l: Enable IR-Remote for the 10moons TM300 Card
Enable the IR-remote of the 10moons TM300 card and add the key-codes for it's remote. But to enable all the keys, "IR_KEYTAB_SIZE", the size of code tables should be at least 256. It has been tested using lirc. All the key codes are accepted. This patch depends on the "[PATCH 1/3] v4l: Support 10moons TM300 (saa7130) Card" Signed-off-by: Tony Wan <[EMAIL PROTECTED]> --- drivers/media/common/ir-keymaps.c | 71 +++ drivers/media/video/saa7134/saa7134-cards.c |1 + drivers/media/video/saa7134/saa7134-input.c |6 ++ include/media/ir-common.h |1 + 4 files changed, 79 insertions(+), 0 deletions(-) diff --git a/drivers/media/common/ir-keymaps.c b/drivers/media/common/ir-keymaps.c index cbd1184..df11ed4 100644 --- a/drivers/media/common/ir-keymaps.c +++ b/drivers/media/common/ir-keymaps.c @@ -1783,3 +1783,74 @@ IR_KEYTAB_TYPE ir_codes_tt_1500[IR_KEYTAB_SIZE] = { }; EXPORT_SYMBOL_GPL(ir_codes_tt_1500); + +/* 10MOONS TM300 */ +IR_KEYTAB_TYPE ir_codes_10moonstm3[IR_KEYTAB_SIZE] = { + [ 0x10 ] = KEY_POWER, // Power + [ 0x0d ] = KEY_MUTE,// Mute + [ 0x1e ] = KEY_TUNER, // Cable + [ 0x00 ] = KEY_VIDEO, // Composite / S-Video + [ 0x01 ] = KEY_RADIO, // Music + [ 0x02 ] = KEY_TEXT,// Photo + + [ 0x1f ] = KEY_1, + [ 0x03 ] = KEY_2, + [ 0x04 ] = KEY_3, + [ 0x05 ] = KEY_4, + [ 0x1c ] = KEY_5, + [ 0x06 ] = KEY_6, + [ 0x07 ] = KEY_7, + [ 0x08 ] = KEY_8, + [ 0x1d ] = KEY_9, + [ 0x09 ] = KEY_SELECT, // 2 digit select (-/--) + [ 0x0a ] = KEY_0, + [ 0x0b ] = KEY_AGAIN, // Recall + + [ 0x14 ] = KEY_F1, // Begin + [ 0x15 ] = KEY_F2, // End + + [ 0x16 ] = KEY_CHANNELUP, // CH+ + [ 0x12 ] = KEY_CHANNELDOWN, // CH- + [ 0x0c ] = KEY_VOLUMEUP,// VOL+ + [ 0x17 ] = KEY_VOLUMEDOWN, // VOL- + [ 0x18 ] = KEY_OK, // OK + + [ 0x0e ] = KEY_EXIT,// Exit + [ 0x13 ] = KEY_COMPUTER,// Desktop + [ 0x11 ] = KEY_TAB, // TAB + [ 0x19 ] = KEY_CYCLEWINDOWS,// Switch task + + [ 0x1a ] = KEY_MENU,// Menu + [ 0x1b ] = KEY_ZOOM,// Fullscreen +#if IR_KEYTAB_SIZE>=256 + [ 0x84 ] = KEY_ARCHIVE, // Time shifting + [ 0x80 ] = KEY_SWITCHVIDEOMODE, // Selcect source + + [ 0x9a ] = KEY_RECORD, // Record + [ 0x82 ] = KEY_PLAY,// Play/Pause + [ 0x85 ] = KEY_STOP,// Stop + [ 0x83 ] = KEY_CAMERA, // Snapshot + + [ 0x88 ] = KEY_BACK,// Backward << + [ 0x8a ] = KEY_FORWARD, // Forward >> + [ 0x89 ] = KEY_PREVIOUS,// Back |<< + [ 0x8b ] = KEY_NEXT,// End >>| + + [ 0x8c ] = KEY_PROGRAM, // Multi-view + [ 0x8d ] = KEY_AUDIO, // Audio Tracks + [ 0x8e ] = KEY_SOUND, // Sound + [ 0x8f ] = KEY_SUBTITLE,// Subtitles + + [ 0x90 ] = KEY_TIME,// Set timer + [ 0x91 ] = KEY_CHANNEL, // Stereo + [ 0x92 ] = KEY_LANGUAGE,// Language + [ 0x93 ] = KEY_TEXT,// Text + + [ 0x99 ] = KEY_RED, // RED + [ 0x81 ] = KEY_GREEN, // GREEN + [ 0x87 ] = KEY_YELLOW, // YELLOW + [ 0x97 ] = KEY_BLUE,// BLUE +#endif /* IR_KEYTAB_SIZE>=256 */ +}; + +EXPORT_SYMBOL_GPL(ir_codes_10moonstm3); diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c index c89d0ef..17d3228 100644 --- a/drivers/media/video/saa7134/saa7134-cards.c +++ b/drivers/media/video/saa7134/saa7134-cards.c @@ -4248,6 +4248,7 @@ int saa7134_board_init1(struct saa7134_dev *dev) case SAA7134_BOARD_AVERMEDIA_A16AR: case SAA7134_BOARD_ENCORE_ENLTV: case SAA7134_BOARD_ENCORE_ENLTV_FM: + case SAA7134_BOARD_10MOONSTVMASTER3: dev->has_remote = SAA7134_REMOTE_GPIO; break; case SAA7134_BOARD_FLYDVBS_LR300: diff --git a/drivers/media/video/saa7134/saa7134-input.c b/drivers/media/video/saa7134/saa7134-input.c index c0de37e..5511aff 100644 --- a/drivers/media/video/saa7134/saa7134-input.c +++ b/drivers/media/video/saa7134/saa7134-input.c @@ -333,6 +333,12 @@ int saa7134_input_init1(struct saa7134_dev *dev) mask_keyup = 0x04; polling = 50; // ms break; + case SAA7134_BOARD_10MOONSTVMASTER3: + ir_codes = ir_codes_10moonstm3; + mask_keycode = 0x7f8; + mask_keyup = 0x800; + polling = 50; //ms + break; } if (NULL == ir_cod
[PATCH 3/3] v4l: Enlarge the size of IR-KEY table to 256
Some IR-remote will produce key codes larger than 128. Enlarge the size IR_KEYTAB_SIZE to 256 to enable all the keys. Signed-off-by: Tony Wan <[EMAIL PROTECTED]> --- include/media/ir-common.h |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/include/media/ir-common.h b/include/media/ir-common.h index 4e4d207..5355ebc 100644 --- a/include/media/ir-common.h +++ b/include/media/ir-common.h @@ -31,7 +31,7 @@ #define IR_TYPE_OTHER 99 #define IR_KEYTAB_TYPE u32 -#define IR_KEYTAB_SIZE 128 // enougth for rc5, probably need more some day ... +#define IR_KEYTAB_SIZE 256 // some remote needs 8-bit keycodes #define IR_KEYCODE(tab,code) (((unsigned)code < IR_KEYTAB_SIZE) \ ? tab[code] : KEY_RESERVED) - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/