aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/video4linux/CARDLIST.saa71341
-rw-r--r--drivers/media/video/saa7134/saa7134-cards.c53
-rw-r--r--drivers/media/video/saa7134/saa7134-input.c49
-rw-r--r--drivers/media/video/saa7134/saa7134.h1
4 files changed, 103 insertions, 1 deletions
diff --git a/Documentation/video4linux/CARDLIST.saa7134 b/Documentation/video4linux/CARDLIST.saa7134
index f31c2f8e4048..411f842c5d1a 100644
--- a/Documentation/video4linux/CARDLIST.saa7134
+++ b/Documentation/video4linux/CARDLIST.saa7134
@@ -66,3 +66,4 @@
66 65 -> V-Stream Studio TV Terminator 66 65 -> V-Stream Studio TV Terminator
67 66 -> Yuan TUN-900 (saa7135) 67 66 -> Yuan TUN-900 (saa7135)
68 67 -> Beholder BeholdTV 409 FM [0000:4091] 68 67 -> Beholder BeholdTV 409 FM [0000:4091]
69 68 -> GoTView 7135 PCI [5456:7135]
diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c
index bca5b7038a8c..088376d3c95b 100644
--- a/drivers/media/video/saa7134/saa7134-cards.c
+++ b/drivers/media/video/saa7134/saa7134-cards.c
@@ -2141,6 +2141,50 @@ struct saa7134_board saa7134_boards[] = {
2141 .amux = LINE2, 2141 .amux = LINE2,
2142 }, 2142 },
2143 }, 2143 },
2144 [SAA7134_BOARD_GOTVIEW_7135] = {
2145 /* Mike Baikov <lists@baikov.com> */
2146 /* Andrey Cvetcov <ays14@yandex.ru> */
2147 .name = "GoTView 7135 PCI",
2148 .audio_clock = 0x00187de7,
2149 .tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
2150 .radio_type = UNSET,
2151 .tuner_addr = ADDR_UNSET,
2152 .radio_addr = ADDR_UNSET,
2153 .tda9887_conf = TDA9887_PRESENT,
2154 .gpiomask = 0x00200003,
2155 .inputs = {{
2156 .name = name_tv,
2157 .vmux = 1,
2158 .amux = TV,
2159 .tv = 1,
2160 .gpio = 0x00200003,
2161 },{
2162 .name = name_tv_mono,
2163 .vmux = 1,
2164 .amux = LINE2,
2165 .gpio = 0x00200003,
2166 },{
2167 .name = name_comp1,
2168 .vmux = 3,
2169 .amux = LINE1,
2170 .gpio = 0x00200003,
2171 },{
2172 .name = name_svideo,
2173 .vmux = 8,
2174 .amux = LINE1,
2175 .gpio = 0x00200003,
2176 }},
2177 .radio = {
2178 .name = name_radio,
2179 .amux = LINE2,
2180 .gpio = 0x00200003,
2181 },
2182 .mute = {
2183 .name = name_mute,
2184 .amux = TV,
2185 .gpio = 0x00200003,
2186 },
2187 },
2144}; 2188};
2145 2189
2146const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards); 2190const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards);
@@ -2505,6 +2549,12 @@ struct pci_device_id saa7134_pci_tbl[] = {
2505 .subdevice = 0x4091, 2549 .subdevice = 0x4091,
2506 .driver_data = SAA7134_BOARD_BEHOLD_409FM, 2550 .driver_data = SAA7134_BOARD_BEHOLD_409FM,
2507 },{ 2551 },{
2552 .vendor = PCI_VENDOR_ID_PHILIPS,
2553 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
2554 .subvendor = 0x5456, /* GoTView */
2555 .subdevice = 0x7135,
2556 .driver_data = SAA7134_BOARD_GOTVIEW_7135,
2557 },{
2508 /* --- boards without eeprom + subsystem ID --- */ 2558 /* --- boards without eeprom + subsystem ID --- */
2509 .vendor = PCI_VENDOR_ID_PHILIPS, 2559 .vendor = PCI_VENDOR_ID_PHILIPS,
2510 .device = PCI_DEVICE_ID_PHILIPS_SAA7134, 2560 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
@@ -2597,6 +2647,7 @@ int saa7134_board_init1(struct saa7134_dev *dev)
2597 case SAA7134_BOARD_MANLI_MTV002: 2647 case SAA7134_BOARD_MANLI_MTV002:
2598 case SAA7134_BOARD_BEHOLD_409FM: 2648 case SAA7134_BOARD_BEHOLD_409FM:
2599 case SAA7134_BOARD_AVACSSMARTTV: 2649 case SAA7134_BOARD_AVACSSMARTTV:
2650 case SAA7134_BOARD_GOTVIEW_7135:
2600 dev->has_remote = 1; 2651 dev->has_remote = 1;
2601 break; 2652 break;
2602 case SAA7134_BOARD_MD5044: 2653 case SAA7134_BOARD_MD5044:
@@ -2613,7 +2664,7 @@ int saa7134_board_init1(struct saa7134_dev *dev)
2613 break; 2664 break;
2614 case SAA7134_BOARD_FLYDVBTDUO: 2665 case SAA7134_BOARD_FLYDVBTDUO:
2615 case SAA7134_BOARD_THYPHOON_DVBT_DUO_CARDBUS: 2666 case SAA7134_BOARD_THYPHOON_DVBT_DUO_CARDBUS:
2616 /* turn the fan on Hac: static for the time being */ 2667 /* turn the fan on */
2617 saa_writeb(SAA7134_GPIO_GPMODE3, 0x08); 2668 saa_writeb(SAA7134_GPIO_GPMODE3, 0x08);
2618 saa_writeb(SAA7134_GPIO_GPSTATUS3, 0x06); 2669 saa_writeb(SAA7134_GPIO_GPSTATUS3, 0x06);
2619 break; 2670 break;
diff --git a/drivers/media/video/saa7134/saa7134-input.c b/drivers/media/video/saa7134/saa7134-input.c
index 8e2cc9d75cd5..899abd8ba0d1 100644
--- a/drivers/media/video/saa7134/saa7134-input.c
+++ b/drivers/media/video/saa7134/saa7134-input.c
@@ -401,6 +401,48 @@ static IR_KEYTAB_TYPE manli_codes[IR_KEYTAB_SIZE] = {
401 401
402 // 0x1d unused ? 402 // 0x1d unused ?
403}; 403};
404
405
406/* Mike Baikov Mike Baikov <lists@baikov.com> */
407static IR_KEYTAB_TYPE gotview7135_codes[IR_KEYTAB_SIZE] = {
408
409 [ 33 ] = KEY_POWER,
410 [ 105] = KEY_TV,
411 [ 51 ] = KEY_KP0,
412 [ 81 ] = KEY_KP1,
413 [ 49 ] = KEY_KP2,
414 [ 113] = KEY_KP3,
415 [ 59 ] = KEY_KP4,
416 [ 88 ] = KEY_KP5,
417 [ 65 ] = KEY_KP6,
418 [ 72 ] = KEY_KP7,
419 [ 48 ] = KEY_KP8,
420 [ 83 ] = KEY_KP9,
421 [ 115] = KEY_AGAIN, /* LOOP */
422 [ 10 ] = KEY_AUDIO,
423 [ 97 ] = KEY_PRINT, /* PREVIEW */
424 [ 122] = KEY_VIDEO,
425 [ 32 ] = KEY_CHANNELUP,
426 [ 64 ] = KEY_CHANNELDOWN,
427 [ 24 ] = KEY_VOLUMEDOWN,
428 [ 80 ] = KEY_VOLUMEUP,
429 [ 16 ] = KEY_MUTE,
430 [ 74 ] = KEY_SEARCH,
431 [ 123] = KEY_SHUFFLE, /* SNAPSHOT */
432 [ 34 ] = KEY_RECORD,
433 [ 98 ] = KEY_STOP,
434 [ 120] = KEY_PLAY,
435 [ 57 ] = KEY_REWIND,
436 [ 89 ] = KEY_PAUSE,
437 [ 25 ] = KEY_FORWARD,
438 [ 9 ] = KEY_ZOOM,
439
440 [ 82 ] = KEY_F21, /* LIVE TIMESHIFT */
441 [ 26 ] = KEY_F22, /* MIN TIMESHIFT */
442 [ 58 ] = KEY_F23, /* TIMESHIFT */
443 [ 112] = KEY_F24, /* NORMAL TIMESHIFT */
444};
445
404/* ---------------------------------------------------------------------- */ 446/* ---------------------------------------------------------------------- */
405 447
406static int build_key(struct saa7134_dev *dev) 448static int build_key(struct saa7134_dev *dev)
@@ -523,6 +565,13 @@ int saa7134_input_init1(struct saa7134_dev *dev)
523 mask_keydown = 0x002000; 565 mask_keydown = 0x002000;
524 polling = 50; // ms 566 polling = 50; // ms
525 break; 567 break;
568 case SAA7134_BOARD_GOTVIEW_7135:
569 ir_codes = gotview7135_codes;
570 mask_keycode = 0x0003EC;
571 mask_keyup = 0x008000;
572 mask_keydown = 0x000010;
573 polling = 50; // ms
574 break;
526 case SAA7134_BOARD_VIDEOMATE_TV_PVR: 575 case SAA7134_BOARD_VIDEOMATE_TV_PVR:
527 case SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUSII: 576 case SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUSII:
528 ir_codes = videomate_tv_pvr_codes; 577 ir_codes = videomate_tv_pvr_codes;
diff --git a/drivers/media/video/saa7134/saa7134.h b/drivers/media/video/saa7134/saa7134.h
index 45fe6af1eccb..291c2e8d1086 100644
--- a/drivers/media/video/saa7134/saa7134.h
+++ b/drivers/media/video/saa7134/saa7134.h
@@ -188,6 +188,7 @@ struct saa7134_format {
188#define SAA7134_BOARD_KWORLD_TERMINATOR 65 188#define SAA7134_BOARD_KWORLD_TERMINATOR 65
189#define SAA7134_BOARD_YUAN_TUN900 66 189#define SAA7134_BOARD_YUAN_TUN900 66
190#define SAA7134_BOARD_BEHOLD_409FM 67 190#define SAA7134_BOARD_BEHOLD_409FM 67
191#define SAA7134_BOARD_GOTVIEW_7135 68
191 192
192#define SAA7134_MAXBOARDS 8 193#define SAA7134_MAXBOARDS 8
193#define SAA7134_INPUT_MAX 8 194#define SAA7134_INPUT_MAX 8