aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Schwarzott <zzam@gentoo.org>2008-04-08 20:45:08 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-04-24 13:07:58 -0400
commitfc9d8ed418619da915ad8a225fa974d813d0ca34 (patch)
tree3fffa0cc2a5264caaa9e732eeb1f9c55e8396363
parentba928034df7e8b603152c896a2f84f9b12e8c290 (diff)
V4L/DVB (7507): saa7134: add analog support for Avermedia A700 cards
Add support for composite and s-video inputs on Avermedia DVB-S Pro and DVB-S Hybrid+FM cards (both labled A700) to the saa7134 driver. XC2028 support for Hybrid+FM is still missing. Signed-off-by: Matthias Schwarzott <zzam@gentoo.org> Reviewed-by: Hermann Pitton <hermann.pitton@arcor.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
-rw-r--r--Documentation/video4linux/CARDLIST.saa71342
-rw-r--r--drivers/media/video/saa7134/saa7134-cards.c63
-rw-r--r--drivers/media/video/saa7134/saa7134.h2
3 files changed, 66 insertions, 1 deletions
diff --git a/Documentation/video4linux/CARDLIST.saa7134 b/Documentation/video4linux/CARDLIST.saa7134
index c1f9f138d1bb..fe925b335c94 100644
--- a/Documentation/video4linux/CARDLIST.saa7134
+++ b/Documentation/video4linux/CARDLIST.saa7134
@@ -138,3 +138,5 @@
138137 -> AVerMedia Hybrid TV/Radio (A16D) [1461:f936] 138137 -> AVerMedia Hybrid TV/Radio (A16D) [1461:f936]
139138 -> Avermedia M115 [1461:a836] 139138 -> Avermedia M115 [1461:a836]
140139 -> Compro VideoMate T750 [185b:c900] 140139 -> Compro VideoMate T750 [185b:c900]
141140 -> Avermedia DVB-S Pro A700 [1461:a7a1]
142141 -> Avermedia DVB-S Hybrid+FM A700 [1461:a7a2]
diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c
index cfa13c2fb14f..82fe19c3b1db 100644
--- a/drivers/media/video/saa7134/saa7134-cards.c
+++ b/drivers/media/video/saa7134/saa7134-cards.c
@@ -4167,7 +4167,47 @@ struct saa7134_board saa7134_boards[] = {
4167 .name = name_radio, 4167 .name = name_radio,
4168 .amux = TV, 4168 .amux = TV,
4169 } 4169 }
4170 } 4170 },
4171 [SAA7134_BOARD_AVERMEDIA_A700_PRO] = {
4172 /* Matthias Schwarzott <zzam@gentoo.org> */
4173 .name = "Avermedia DVB-S Pro A700",
4174 .audio_clock = 0x00187de7,
4175 .tuner_type = TUNER_ABSENT,
4176 .radio_type = UNSET,
4177 .tuner_addr = ADDR_UNSET,
4178 .radio_addr = ADDR_UNSET,
4179 /* no DVB support for now */
4180 /* .mpeg = SAA7134_MPEG_DVB, */
4181 .inputs = { {
4182 .name = name_comp,
4183 .vmux = 1,
4184 .amux = LINE1,
4185 }, {
4186 .name = name_svideo,
4187 .vmux = 6,
4188 .amux = LINE1,
4189 } },
4190 },
4191 [SAA7134_BOARD_AVERMEDIA_A700_HYBRID] = {
4192 /* Matthias Schwarzott <zzam@gentoo.org> */
4193 .name = "Avermedia DVB-S Hybrid+FM A700",
4194 .audio_clock = 0x00187de7,
4195 .tuner_type = TUNER_ABSENT, /* TUNER_XC2028 */
4196 .radio_type = UNSET,
4197 .tuner_addr = ADDR_UNSET,
4198 .radio_addr = ADDR_UNSET,
4199 /* no DVB support for now */
4200 /* .mpeg = SAA7134_MPEG_DVB, */
4201 .inputs = { {
4202 .name = name_comp,
4203 .vmux = 1,
4204 .amux = LINE1,
4205 }, {
4206 .name = name_svideo,
4207 .vmux = 6,
4208 .amux = LINE1,
4209 } },
4210 },
4171}; 4211};
4172 4212
4173const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards); 4213const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards);
@@ -4400,6 +4440,18 @@ struct pci_device_id saa7134_pci_tbl[] = {
4400 .driver_data = SAA7134_BOARD_MD2819, 4440 .driver_data = SAA7134_BOARD_MD2819,
4401 },{ 4441 },{
4402 .vendor = PCI_VENDOR_ID_PHILIPS, 4442 .vendor = PCI_VENDOR_ID_PHILIPS,
4443 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4444 .subvendor = 0x1461, /* Avermedia Technologies Inc */
4445 .subdevice = 0xa7a1,
4446 .driver_data = SAA7134_BOARD_AVERMEDIA_A700_PRO,
4447 }, {
4448 .vendor = PCI_VENDOR_ID_PHILIPS,
4449 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
4450 .subvendor = 0x1461, /* Avermedia Technologies Inc */
4451 .subdevice = 0xa7a2,
4452 .driver_data = SAA7134_BOARD_AVERMEDIA_A700_HYBRID,
4453 }, {
4454 .vendor = PCI_VENDOR_ID_PHILIPS,
4403 .device = PCI_DEVICE_ID_PHILIPS_SAA7130, 4455 .device = PCI_DEVICE_ID_PHILIPS_SAA7130,
4404 .subvendor = 0x1461, /* Avermedia Technologies Inc */ 4456 .subvendor = 0x1461, /* Avermedia Technologies Inc */
4405 .subdevice = 0x2115, 4457 .subdevice = 0x2115,
@@ -5462,6 +5514,15 @@ int saa7134_board_init1(struct saa7134_dev *dev)
5462 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x8c040007, 0x8c040007); 5514 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x8c040007, 0x8c040007);
5463 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x0c0007cd, 0x0c0007cd); 5515 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x0c0007cd, 0x0c0007cd);
5464 break; 5516 break;
5517 case SAA7134_BOARD_AVERMEDIA_A700_PRO:
5518 case SAA7134_BOARD_AVERMEDIA_A700_HYBRID:
5519 /* write windows gpio values */
5520 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x80040100, 0x80040100);
5521 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x80040100, 0x00040100);
5522 printk("%s: %s: hybrid analog/dvb card\n"
5523 "%s: Sorry, only the analog inputs are supported for now.\n",
5524 dev->name, card(dev).name, dev->name);
5525 break;
5465 } 5526 }
5466 return 0; 5527 return 0;
5467} 5528}
diff --git a/drivers/media/video/saa7134/saa7134.h b/drivers/media/video/saa7134/saa7134.h
index 3394c47cea60..924ffd13637e 100644
--- a/drivers/media/video/saa7134/saa7134.h
+++ b/drivers/media/video/saa7134/saa7134.h
@@ -261,6 +261,8 @@ struct saa7134_format {
261#define SAA7134_BOARD_AVERMEDIA_A16D 137 261#define SAA7134_BOARD_AVERMEDIA_A16D 137
262#define SAA7134_BOARD_AVERMEDIA_M115 138 262#define SAA7134_BOARD_AVERMEDIA_M115 138
263#define SAA7134_BOARD_VIDEOMATE_T750 139 263#define SAA7134_BOARD_VIDEOMATE_T750 139
264#define SAA7134_BOARD_AVERMEDIA_A700_PRO 140
265#define SAA7134_BOARD_AVERMEDIA_A700_HYBRID 141
264 266
265 267
266#define SAA7134_MAXBOARDS 8 268#define SAA7134_MAXBOARDS 8