diff options
author | Igor M. Liplianin <liplianin@me.by> | 2006-08-08 08:10:10 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2006-09-26 10:53:30 -0400 |
commit | e2ac28fa15696d3d9dc38923438ad39fe1235ecd (patch) | |
tree | a6664aca84160e6ada67ca852180e08e435d63a8 /drivers/media | |
parent | adc619ac6e3d3b4a175476b915befe37650ee109 (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>
Diffstat (limited to 'drivers/media')
-rw-r--r-- | drivers/media/video/saa7134/saa7134-cards.c | 38 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134-dvb.c | 19 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134.h | 1 |
3 files changed, 58 insertions, 0 deletions
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 | ||
2919 | const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards); | 2940 | const 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" | ||
42 | MODULE_AUTHOR("Gerd Knorr <kraxel@bytesex.org> [SuSE Labs]"); | 45 | MODULE_AUTHOR("Gerd Knorr <kraxel@bytesex.org> [SuSE Labs]"); |
43 | MODULE_LICENSE("GPL"); | 46 | MODULE_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 | ||
1008 | static struct tda10086_config flydvbs = { | ||
1009 | .demod_address = 0x0e, | ||
1010 | .invert = 0, | ||
1011 | }; | ||
1012 | |||
1005 | /* ------------------------------------------------------------------ */ | 1013 | /* ------------------------------------------------------------------ */ |
1006 | 1014 | ||
1007 | static struct nxt200x_config avertvhda180 = { | 1015 | static 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 |