aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIgor M. Liplianin <liplianin@me.by>2006-08-08 08:10:10 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2006-09-26 10:53:30 -0400
commite2ac28fa15696d3d9dc38923438ad39fe1235ecd (patch)
treea6664aca84160e6ada67ca852180e08e435d63a8
parentadc619ac6e3d3b4a175476b915befe37650ee109 (diff)
V4L/DVB (4398): Add support for Acorp TV134DS + FlyDVB-S cards.
Add support for Acorp TV134DS and FlyDVB-S cards (both based on tda10086+tda826x) Signed-off-by: Igor M. Liplianin <liplianin@me.by> Signed-off-by: Andrew de Quincey <adq_dvb@lidskialf.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
-rw-r--r--Documentation/video4linux/CARDLIST.saa71341
-rw-r--r--drivers/media/video/saa7134/saa7134-cards.c38
-rw-r--r--drivers/media/video/saa7134/saa7134-dvb.c19
-rw-r--r--drivers/media/video/saa7134/saa7134.h1
4 files changed, 59 insertions, 0 deletions
diff --git a/Documentation/video4linux/CARDLIST.saa7134 b/Documentation/video4linux/CARDLIST.saa7134
index dba69335c6a4..ac1357d47a27 100644
--- a/Documentation/video4linux/CARDLIST.saa7134
+++ b/Documentation/video4linux/CARDLIST.saa7134
@@ -95,3 +95,4 @@
95 94 -> LifeView FlyDVB-T Hybrid Cardbus [5168:3306,5168:3502] 95 94 -> LifeView FlyDVB-T Hybrid Cardbus [5168:3306,5168:3502]
96 95 -> LifeView FlyVIDEO3000 (NTSC) [5169:0138] 96 95 -> LifeView FlyVIDEO3000 (NTSC) [5169:0138]
97 96 -> Medion Md8800 Quadro [16be:0007,16be:0008] 97 96 -> Medion Md8800 Quadro [16be:0007,16be:0008]
98 97 -> LifeView FlyDVB-S /Acorp TV134DS [5168:0300,4e42:0300]
diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c
index 6ac5ab92514d..bd526ad79f5b 100644
--- a/drivers/media/video/saa7134/saa7134-cards.c
+++ b/drivers/media/video/saa7134/saa7134-cards.c
@@ -2914,6 +2914,27 @@ struct saa7134_board saa7134_boards[] = {
2914 .amux = LINE2, 2914 .amux = LINE2,
2915 }}, 2915 }},
2916 }, 2916 },
2917 [SAA7134_BOARD_FLYDVBS_LR300] = {
2918 /* LifeView FlyDVB-s */
2919 /* Igor M. Liplianin <liplianin@tut.by> */
2920 .name = "LifeView FlyDVB-S /Acorp TV134DS",
2921 .audio_clock = 0x00200000,
2922 .tuner_type = TUNER_ABSENT,
2923 .radio_type = UNSET,
2924 .tuner_addr = ADDR_UNSET,
2925 .radio_addr = ADDR_UNSET,
2926 .mpeg = SAA7134_MPEG_DVB,
2927 .inputs = {{
2928 .name = name_comp1, /* Composite input */
2929 .vmux = 3,
2930 .amux = LINE1,
2931 },{
2932 .name = name_svideo, /* S-Video signal on S-Video input */
2933 .vmux = 8,
2934 .amux = LINE1,
2935 }},
2936 },
2937
2917}; 2938};
2918 2939
2919const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards); 2940const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards);
@@ -3445,6 +3466,18 @@ struct pci_device_id saa7134_pci_tbl[] = {
3445 .subdevice = 0x0005, 3466 .subdevice = 0x0005,
3446 .driver_data = SAA7134_BOARD_MD7134_BRIDGE_2, 3467 .driver_data = SAA7134_BOARD_MD7134_BRIDGE_2,
3447 },{ 3468 },{
3469 .vendor = PCI_VENDOR_ID_PHILIPS,
3470 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
3471 .subvendor = 0x5168,
3472 .subdevice = 0x0300,
3473 .driver_data = SAA7134_BOARD_FLYDVBS_LR300,
3474 },{
3475 .vendor = PCI_VENDOR_ID_PHILIPS,
3476 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
3477 .subvendor = 0x4e42,
3478 .subdevice = 0x0300,/* LR300 */
3479 .driver_data = SAA7134_BOARD_FLYDVBS_LR300,
3480 },{
3448 .vendor = PCI_VENDOR_ID_PHILIPS, 3481 .vendor = PCI_VENDOR_ID_PHILIPS,
3449 .device = PCI_DEVICE_ID_PHILIPS_SAA7134, 3482 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
3450 .subvendor = 0x1489, 3483 .subvendor = 0x1489,
@@ -3597,6 +3630,11 @@ int saa7134_board_init1(struct saa7134_dev *dev)
3597 case SAA7134_BOARD_FLYDVBTDUO: 3630 case SAA7134_BOARD_FLYDVBTDUO:
3598 dev->has_remote = SAA7134_REMOTE_GPIO; 3631 dev->has_remote = SAA7134_REMOTE_GPIO;
3599 break; 3632 break;
3633 case SAA7134_BOARD_FLYDVBS_LR300:
3634 saa_writeb(SAA7134_GPIO_GPMODE3, 0x80);
3635 saa_writeb(SAA7134_GPIO_GPSTATUS2, 0x40);
3636 dev->has_remote = SAA7134_REMOTE_GPIO;
3637 break;
3600 case SAA7134_BOARD_MD5044: 3638 case SAA7134_BOARD_MD5044:
3601 printk("%s: seems there are two different versions of the MD5044\n" 3639 printk("%s: seems there are two different versions of the MD5044\n"
3602 "%s: (with the same ID) out there. If sound doesn't work for\n" 3640 "%s: (with the same ID) out there. If sound doesn't work for\n"
diff --git a/drivers/media/video/saa7134/saa7134-dvb.c b/drivers/media/video/saa7134/saa7134-dvb.c
index fdd1bb51e807..e2d366b8fbef 100644
--- a/drivers/media/video/saa7134/saa7134-dvb.c
+++ b/drivers/media/video/saa7134/saa7134-dvb.c
@@ -39,6 +39,9 @@
39#include "tda1004x.h" 39#include "tda1004x.h"
40#include "nxt200x.h" 40#include "nxt200x.h"
41 41
42#include "tda10086.h"
43#include "tda826x.h"
44#include "isl6421.h"
42MODULE_AUTHOR("Gerd Knorr <kraxel@bytesex.org> [SuSE Labs]"); 45MODULE_AUTHOR("Gerd Knorr <kraxel@bytesex.org> [SuSE Labs]");
43MODULE_LICENSE("GPL"); 46MODULE_LICENSE("GPL");
44 47
@@ -1002,6 +1005,11 @@ static struct tda1004x_config md8800_dvbt_config = {
1002 .request_firmware = NULL, 1005 .request_firmware = NULL,
1003}; 1006};
1004 1007
1008static struct tda10086_config flydvbs = {
1009 .demod_address = 0x0e,
1010 .invert = 0,
1011};
1012
1005/* ------------------------------------------------------------------ */ 1013/* ------------------------------------------------------------------ */
1006 1014
1007static struct nxt200x_config avertvhda180 = { 1015static struct nxt200x_config avertvhda180 = {
@@ -1199,6 +1207,17 @@ static int dvb_init(struct saa7134_dev *dev)
1199 dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61, &dev->i2c_adap, &dvb_pll_tuv1236d); 1207 dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61, &dev->i2c_adap, &dvb_pll_tuv1236d);
1200 } 1208 }
1201 break; 1209 break;
1210 case SAA7134_BOARD_FLYDVBS_LR300:
1211 dev->dvb.frontend = dvb_attach(tda10086_attach, &flydvbs, &dev->i2c_adap);
1212 if (dev->dvb.frontend) {
1213 if (dvb_attach(tda826x_attach, dev->dvb.frontend, 0x60, &dev->i2c_adap, 0) == NULL) {
1214 printk("%s: No tda826x found!\n", __FUNCTION__);
1215 }
1216 if (dvb_attach(isl6421_attach, dev->dvb.frontend, &dev->i2c_adap, 0x08, 0, 0) == NULL) {
1217 printk("%s: No ISL6421 found!\n", __FUNCTION__);
1218 }
1219 }
1220 break;
1202 default: 1221 default:
1203 printk("%s: Huh? unknown DVB card?\n",dev->name); 1222 printk("%s: Huh? unknown DVB card?\n",dev->name);
1204 break; 1223 break;
diff --git a/drivers/media/video/saa7134/saa7134.h b/drivers/media/video/saa7134/saa7134.h
index e3739b893cad..c2f5181c770c 100644
--- a/drivers/media/video/saa7134/saa7134.h
+++ b/drivers/media/video/saa7134/saa7134.h
@@ -224,6 +224,7 @@ struct saa7134_format {
224#define SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS 94 224#define SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS 94
225#define SAA7134_BOARD_FLYVIDEO3000_NTSC 95 225#define SAA7134_BOARD_FLYVIDEO3000_NTSC 95
226#define SAA7134_BOARD_MEDION_MD8800_QUADRO 96 226#define SAA7134_BOARD_MEDION_MD8800_QUADRO 96
227#define SAA7134_BOARD_FLYDVBS_LR300 97
227 228
228#define SAA7134_MAXBOARDS 8 229#define SAA7134_MAXBOARDS 8
229#define SAA7134_INPUT_MAX 8 230#define SAA7134_INPUT_MAX 8