diff options
-rw-r--r-- | Documentation/video4linux/CARDLIST.bttv | 1 | ||||
-rw-r--r-- | drivers/media/video/bttv-cards.c | 34 | ||||
-rw-r--r-- | drivers/media/video/bttv.h | 1 |
3 files changed, 36 insertions, 0 deletions
diff --git a/Documentation/video4linux/CARDLIST.bttv b/Documentation/video4linux/CARDLIST.bttv index 330246ac80f8..74fb085e178b 100644 --- a/Documentation/video4linux/CARDLIST.bttv +++ b/Documentation/video4linux/CARDLIST.bttv | |||
@@ -141,3 +141,4 @@ | |||
141 | 140 -> Osprey 440 [0070:ff07] | 141 | 140 -> Osprey 440 [0070:ff07] |
142 | 141 -> Asound Skyeye PCTV | 142 | 141 -> Asound Skyeye PCTV |
143 | 142 -> Sabrent TV-FM (bttv version) | 143 | 142 -> Sabrent TV-FM (bttv version) |
144 | 143 -> Hauppauge ImpactVCB (bt878) [0070:13eb] | ||
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 | ||
2822 | static const unsigned int bttv_num_tvcards = ARRAY_SIZE(bttv_tvcards); | 2841 | static 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 | ||
3476 | static int terratec_active_radio_upgrade(struct bttv *btv) | 3510 | static int terratec_active_radio_upgrade(struct bttv *btv) |
diff --git a/drivers/media/video/bttv.h b/drivers/media/video/bttv.h index 93298f06e019..a5f172fe9f98 100644 --- a/drivers/media/video/bttv.h +++ b/drivers/media/video/bttv.h | |||
@@ -163,6 +163,7 @@ | |||
163 | #define BTTV_BOARD_OSPREY440 0x8c | 163 | #define BTTV_BOARD_OSPREY440 0x8c |
164 | #define BTTV_BOARD_ASOUND_SKYEYE 0x8d | 164 | #define BTTV_BOARD_ASOUND_SKYEYE 0x8d |
165 | #define BTTV_BOARD_SABRENT_TVFM 0x8e | 165 | #define BTTV_BOARD_SABRENT_TVFM 0x8e |
166 | #define BTTV_BOARD_HAUPPAUGE_IMPACTVCB 0x8f | ||
166 | 167 | ||
167 | /* i2c address list */ | 168 | /* i2c address list */ |
168 | #define I2C_TSA5522 0xc2 | 169 | #define I2C_TSA5522 0xc2 |