aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/bttv-cards.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/video/bttv-cards.c')
-rw-r--r--drivers/media/video/bttv-cards.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/drivers/media/video/bttv-cards.c b/drivers/media/video/bttv-cards.c
index 012be639aa18..80bcbc4ea3a4 100644
--- a/drivers/media/video/bttv-cards.c
+++ b/drivers/media/video/bttv-cards.c
@@ -292,6 +292,9 @@ static struct CARD {
292 /* likely broken, vendor id doesn't match the other magic views ... 292 /* likely broken, vendor id doesn't match the other magic views ...
293 * { 0xa0fca04f, BTTV_BOARD_MAGICTVIEW063, "Guillemot Maxi TV Video 3" }, */ 293 * { 0xa0fca04f, BTTV_BOARD_MAGICTVIEW063, "Guillemot Maxi TV Video 3" }, */
294 294
295 /* Duplicate PCI ID, reconfigure for this board during the eeprom read.
296 * { 0x13eb0070, BTTV_BOARD_HAUPPAUGE_IMPACTVCB, "Hauppauge ImpactVCB" }, */
297
295 /* DVB cards (using pci function .1 for mpeg data xfer) */ 298 /* DVB cards (using pci function .1 for mpeg data xfer) */
296 { 0x01010071, BTTV_BOARD_NEBULA_DIGITV, "Nebula Electronics DigiTV" }, 299 { 0x01010071, BTTV_BOARD_NEBULA_DIGITV, "Nebula Electronics DigiTV" },
297 { 0x07611461, BTTV_BOARD_AVDVBT_761, "AverMedia AverTV DVB-T 761" }, 300 { 0x07611461, BTTV_BOARD_AVDVBT_761, "AverMedia AverTV DVB-T 761" },
@@ -2817,6 +2820,22 @@ struct tvcard bttv_tvcards[] = {
2817 .tuner_addr = ADDR_UNSET, 2820 .tuner_addr = ADDR_UNSET,
2818 .has_radio = 1, 2821 .has_radio = 1,
2819 }, 2822 },
2823 /* ---- card 0x8f ---------------------------------- */
2824 [BTTV_BOARD_HAUPPAUGE_IMPACTVCB] = {
2825 .name = "Hauppauge ImpactVCB (bt878)",
2826 .video_inputs = 4,
2827 .audio_inputs = 0,
2828 .tuner = -1,
2829 .svhs = -1,
2830 .gpiomask = 0x0f, /* old: 7 */
2831 .muxsel = { 0, 1, 3, 2}, /* Composite 0-3 */
2832 .no_msp34xx = 1,
2833 .no_tda9875 = 1,
2834 .no_tda7432 = 1,
2835 .tuner_type = -1,
2836 .tuner_addr = ADDR_UNSET,
2837 .radio_addr = ADDR_UNSET,
2838 },
2820}; 2839};
2821 2840
2822static const unsigned int bttv_num_tvcards = ARRAY_SIZE(bttv_tvcards); 2841static const unsigned int bttv_num_tvcards = ARRAY_SIZE(bttv_tvcards);
@@ -3471,6 +3490,21 @@ static void __devinit hauppauge_eeprom(struct bttv *btv)
3471 tveeprom_hauppauge_analog(&btv->i2c_client, &tv, eeprom_data); 3490 tveeprom_hauppauge_analog(&btv->i2c_client, &tv, eeprom_data);
3472 btv->tuner_type = tv.tuner_type; 3491 btv->tuner_type = tv.tuner_type;
3473 btv->has_radio = tv.has_radio; 3492 btv->has_radio = tv.has_radio;
3493
3494 printk("bttv%d: Hauppauge eeprom indicates model#%d\n",
3495 btv->c.nr, tv.model);
3496
3497 /*
3498 * Some of the 878 boards have duplicate PCI IDs. Switch the board
3499 * type based on model #.
3500 */
3501 if(tv.model == 64900) {
3502 printk("bttv%d: Switching board type from %s to %s\n",
3503 btv->c.nr,
3504 bttv_tvcards[btv->c.type].name,
3505 bttv_tvcards[BTTV_BOARD_HAUPPAUGE_IMPACTVCB].name);
3506 btv->c.type = BTTV_BOARD_HAUPPAUGE_IMPACTVCB;
3507 }
3474} 3508}
3475 3509
3476static int terratec_active_radio_upgrade(struct bttv *btv) 3510static int terratec_active_radio_upgrade(struct bttv *btv)