Commit b04c1baf485f4c3a25d8dbc187156030f9247cb0

Authored by Michal Majchrowicz
Committed by Mauro Carvalho Chehab
1 parent 666c73d9e1

V4L/DVB (4629): Saa7134: add card support for Proteus Pro 2309

Add card support for Proteus Pro 2309, based on saa7130 bridge

Signed-off-by: Michal Majchrowicz <mmajchrowicz@gmail.com>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>

Showing 6 changed files with 78 additions and 1 deletions Side-by-side Diff

Documentation/video4linux/CARDLIST.saa7134
... ... @@ -96,4 +96,5 @@
96 96 95 -> LifeView FlyVIDEO3000 (NTSC) [5169:0138]
97 97 96 -> Medion Md8800 Quadro [16be:0007,16be:0008]
98 98 97 -> LifeView FlyDVB-S /Acorp TV134DS [5168:0300,4e42:0300]
  99 + 98 -> Proteus Pro 2309 [0919:2003]
drivers/media/common/ir-keymaps.c
... ... @@ -32,6 +32,37 @@
32 32  
33 33 EXPORT_SYMBOL_GPL(ir_codes_empty);
34 34  
  35 +/* Michal Majchrowicz <mmajchrowicz@gmail.com> */
  36 +IR_KEYTAB_TYPE ir_codes_proteus_2309[IR_KEYTAB_SIZE] = {
  37 + /* numeric */
  38 + [ 0x00 ] = KEY_0,
  39 + [ 0x01 ] = KEY_1,
  40 + [ 0x02 ] = KEY_2,
  41 + [ 0x03 ] = KEY_3,
  42 + [ 0x04 ] = KEY_4,
  43 + [ 0x05 ] = KEY_5,
  44 + [ 0x06 ] = KEY_6,
  45 + [ 0x07 ] = KEY_7,
  46 + [ 0x08 ] = KEY_8,
  47 + [ 0x09 ] = KEY_9,
  48 +
  49 + [ 0x5c ] = KEY_POWER, /* power */
  50 + [ 0x20 ] = KEY_F, /* full screen */
  51 + [ 0x0f ] = KEY_BACKSPACE, /* recall */
  52 + [ 0x1b ] = KEY_ENTER, /* mute */
  53 + [ 0x41 ] = KEY_RECORD, /* record */
  54 + [ 0x43 ] = KEY_STOP, /* stop */
  55 + [ 0x16 ] = KEY_S,
  56 + [ 0x1a ] = KEY_Q, /* off */
  57 + [ 0x2e ] = KEY_RED,
  58 + [ 0x1f ] = KEY_DOWN, /* channel - */
  59 + [ 0x1c ] = KEY_UP, /* channel + */
  60 + [ 0x10 ] = KEY_LEFT, /* volume - */
  61 + [ 0x1e ] = KEY_RIGHT, /* volume + */
  62 + [ 0x14 ] = KEY_F1,
  63 +};
  64 +
  65 +EXPORT_SYMBOL_GPL(ir_codes_proteus_2309);
35 66 /* Matt Jesson <dvb@jesson.eclipse.co.uk */
36 67 IR_KEYTAB_TYPE ir_codes_avermedia_dvbt[IR_KEYTAB_SIZE] = {
37 68 [ 0x28 ] = KEY_0, //'0' / 'enter'
drivers/media/video/saa7134/saa7134-cards.c
... ... @@ -2934,7 +2934,37 @@
2934 2934 .amux = LINE1,
2935 2935 }},
2936 2936 },
2937   -
  2937 + [SAA7134_BOARD_PROTEUS_2309] = {
  2938 + .name = "Proteus Pro 2309",
  2939 + .audio_clock = 0x00187de7,
  2940 + .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
  2941 + .radio_type = UNSET,
  2942 + .tuner_addr = ADDR_UNSET,
  2943 + .radio_addr = ADDR_UNSET,
  2944 + .tda9887_conf = TDA9887_PRESENT,
  2945 + .inputs = {{
  2946 + .name = name_tv,
  2947 + .vmux = 1,
  2948 + .amux = LINE2,
  2949 + .tv = 1,
  2950 + },{
  2951 + .name = name_comp1,
  2952 + .vmux = 0,
  2953 + .amux = LINE2,
  2954 + },{
  2955 + .name = name_comp2,
  2956 + .vmux = 3,
  2957 + .amux = LINE2,
  2958 + },{
  2959 + .name = name_svideo,
  2960 + .vmux = 8,
  2961 + .amux = LINE2,
  2962 + }},
  2963 + .mute = {
  2964 + .name = name_mute,
  2965 + .amux = LINE1,
  2966 + },
  2967 + },
2938 2968 };
2939 2969  
2940 2970 const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards);
... ... @@ -3526,6 +3556,12 @@
3526 3556 .subdevice = 0x0502, /* Cardbus version */
3527 3557 .driver_data = SAA7134_BOARD_FLYDVBT_DUO_CARDBUS,
3528 3558 },{
  3559 + .vendor = PCI_VENDOR_ID_PHILIPS,
  3560 + .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
  3561 + .subvendor = 0x0919, /* Philips Proteus PRO 2309 */
  3562 + .subdevice = 0x2003,
  3563 + .driver_data = SAA7134_BOARD_PROTEUS_2309,
  3564 + },{
3529 3565 /* --- boards without eeprom + subsystem ID --- */
3530 3566 .vendor = PCI_VENDOR_ID_PHILIPS,
3531 3567 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
... ... @@ -3628,6 +3664,7 @@
3628 3664 case SAA7134_BOARD_SEDNA_PC_TV_CARDBUS:
3629 3665 case SAA7134_BOARD_FLYDVBT_LR301:
3630 3666 case SAA7134_BOARD_FLYDVBTDUO:
  3667 + case SAA7134_BOARD_PROTEUS_2309:
3631 3668 dev->has_remote = SAA7134_REMOTE_GPIO;
3632 3669 break;
3633 3670 case SAA7134_BOARD_FLYDVBS_LR300:
drivers/media/video/saa7134/saa7134-input.c
... ... @@ -228,6 +228,12 @@
228 228 mask_keyup = 0x400000;
229 229 polling = 50; // ms
230 230 break;
  231 + case SAA7134_BOARD_PROTEUS_2309:
  232 + ir_codes = ir_codes_proteus_2309;
  233 + mask_keycode = 0x00007F;
  234 + mask_keyup = 0x000080;
  235 + polling = 50; // ms
  236 + break;
231 237 case SAA7134_BOARD_VIDEOMATE_DVBT_300:
232 238 case SAA7134_BOARD_VIDEOMATE_DVBT_200:
233 239 ir_codes = ir_codes_videomate_tv_pvr;
drivers/media/video/saa7134/saa7134.h
... ... @@ -225,6 +225,7 @@
225 225 #define SAA7134_BOARD_FLYVIDEO3000_NTSC 95
226 226 #define SAA7134_BOARD_MEDION_MD8800_QUADRO 96
227 227 #define SAA7134_BOARD_FLYDVBS_LR300 97
  228 +#define SAA7134_BOARD_PROTEUS_2309 98
228 229  
229 230 #define SAA7134_MAXBOARDS 8
230 231 #define SAA7134_INPUT_MAX 8
include/media/ir-common.h
... ... @@ -91,6 +91,7 @@
91 91 extern IR_KEYTAB_TYPE ir_codes_hauppauge_new[IR_KEYTAB_SIZE];
92 92 extern IR_KEYTAB_TYPE ir_codes_npgtech[IR_KEYTAB_SIZE];
93 93 extern IR_KEYTAB_TYPE ir_codes_norwood[IR_KEYTAB_SIZE];
  94 +extern IR_KEYTAB_TYPE ir_codes_proteus_2309[IR_KEYTAB_SIZE];
94 95  
95 96 #endif
96 97