diff options
author | Jonathan Gray <jsg@cvs.openbsd.org> | 2004-10-15 08:59:33 +0000 |
---|---|---|
committer | Jonathan Gray <jsg@cvs.openbsd.org> | 2004-10-15 08:59:33 +0000 |
commit | 421f4fb6886c9b23aee71629f82d2a073dc12c38 (patch) | |
tree | 5560a27a68b8069e2c84f97f2d39ac1d56b361b8 /sys/dev/pci/bktr | |
parent | b75edb885be359c6e1d46a92bb060c76d5b8f168 (diff) |
Add support for IODATA GV-BCTV3 and AOpen VA1000 from FreeBSD
Check for yet another LeakTek PCI vendor ID to make a WinFast TV2000
work from NetBSD
Add missing mention of TVWONDER in card override part of bktr(4)
ok mickey@
Diffstat (limited to 'sys/dev/pci/bktr')
-rw-r--r-- | sys/dev/pci/bktr/bktr_card.c | 48 | ||||
-rw-r--r-- | sys/dev/pci/bktr/bktr_card.h | 6 |
2 files changed, 50 insertions, 4 deletions
diff --git a/sys/dev/pci/bktr/bktr_card.c b/sys/dev/pci/bktr/bktr_card.c index 44b1a472e84..cfc0693ea1c 100644 --- a/sys/dev/pci/bktr/bktr_card.c +++ b/sys/dev/pci/bktr/bktr_card.c @@ -1,4 +1,4 @@ -/* $OpenBSD: bktr_card.c,v 1.9 2004/06/28 13:20:14 mickey Exp $ */ +/* $OpenBSD: bktr_card.c,v 1.10 2004/10/15 08:59:32 jsg Exp $ */ /* $FreeBSD: src/sys/dev/bktr/bktr_card.c,v 1.16 2000/10/31 13:09:56 roger Exp $ */ /* @@ -354,6 +354,31 @@ static const struct CARDTYPE cards[] = { { 0x1002, 0x1002, 0x3003, 0x3003, 0x3003 }, /* audio MUX values*/ 0x300f }, /* GPIO mask */ + { CARD_IO_BCTV3, /* the card id */ + "I/O DATA GV-BCTV3/PCI", /* the 'name' */ + NULL, /* the tuner */ + 0, /* the tuner i2c address */ + 0, /* dbx is optional */ + 0, + 0, + 0, /* EEProm type */ + 0, /* EEProm size */ + /* Tuner, Extern, Intern, Mute, Enabled */ + { 0x10000, 0, 0x10000, 0, 1 }, /* audio MUX values */ + 0x10f00 }, /* GPIO mask */ + + { CARD_AOPEN_VA1000, /* the card id */ + "AOpen VA1000", /* the 'name' */ + NULL, /* the tuner */ + 0, /* the tuner i2c address */ + 0, /* dbx is optional */ + 0, + 0, + 0, /* EEProm unknown */ + 0, /* size unknown */ + { 0x02, 0x00, 0x00, 0x00, 1 }, /* audio MUX values */ + 0x18e0 }, /* GPIO mask */ + }; struct bt848_card_sig bt848_card_signature[1]= { @@ -666,7 +691,8 @@ probeCard( bktr_ptr_t bktr, int verbose, int unit ) goto checkTuner; } - if ((subsystem_vendor_id == PCI_VENDOR_LEADTEK_ALT) + if ((subsystem_vendor_id == PCI_VENDOR_LEADTEK) + || (subsystem_vendor_id == PCI_VENDOR_LEADTEK_ALT) || (subsystem_vendor_id == PCI_VENDOR_LEADTEK_ALT_2) || (subsystem_vendor_id == PCI_VENDOR_LEADTEK_ALT_3)) { bktr->card = cards[ (card = CARD_LEADTEK) ]; @@ -696,6 +722,19 @@ probeCard( bktr_ptr_t bktr, int verbose, int unit ) goto checkTuner; } + /* + * Check which card as the GV-BCTV4 and GV-BCTV5 IODATA make + * are somewhat different to the GV-BCTV3. + */ + + if (subsystem_vendor_id == PCI_VENDOR_IODATA && + subsystem_id == PCI_PRODUCT_IODATA_GV_BCTV3) { + bktr->card = cards[ (card = CARD_IO_BCTV3) ]; + bktr->card.eepromAddr = eeprom_i2c_address; + bktr->card.eepromSize = (u_char)(256 / EEPROMBLOCKSIZE); + goto checkTuner; + } + /* Vendor is unknown. We will use the standard probe code */ /* which may not give best results */ printf("%s: Warning " @@ -1111,6 +1150,11 @@ checkTuner: goto checkDBX; break; + case CARD_IO_BCTV3: + select_tuner( bktr, ALPS_TSCH5 ); /* ALPS_TSCH6, in fact. */ + goto checkDBX; + break; + } /* end switch(card) */ diff --git a/sys/dev/pci/bktr/bktr_card.h b/sys/dev/pci/bktr/bktr_card.h index a4cc70388a4..10b3b6897a0 100644 --- a/sys/dev/pci/bktr/bktr_card.h +++ b/sys/dev/pci/bktr/bktr_card.h @@ -1,4 +1,4 @@ -/* $OpenBSD: bktr_card.h,v 1.4 2004/06/28 13:20:14 mickey Exp $ */ +/* $OpenBSD: bktr_card.h,v 1.5 2004/10/15 08:59:32 jsg Exp $ */ /* $FreeBSD: src/sys/dev/bktr/bktr_card.h,v 1.4 2000/06/26 09:41:31 roger Exp $ */ /* @@ -78,7 +78,9 @@ #define CARD_LEADTEK 15 #define CARD_TERRATVPLUS 16 #define CARD_TVWONDER 17 -#define Bt848_MAX_CARD 18 +#define CARD_IO_BCTV3 18 +#define CARD_AOPEN_VA1000 19 +#define Bt848_MAX_CARD 20 int signCard( bktr_ptr_t bktr, int offset, int count, u_char *sig ); |