summaryrefslogtreecommitdiff
path: root/sys/dev/pci/bktr
diff options
context:
space:
mode:
authorJonathan Gray <jsg@cvs.openbsd.org>2004-10-15 08:59:33 +0000
committerJonathan Gray <jsg@cvs.openbsd.org>2004-10-15 08:59:33 +0000
commit421f4fb6886c9b23aee71629f82d2a073dc12c38 (patch)
tree5560a27a68b8069e2c84f97f2d39ac1d56b361b8 /sys/dev/pci/bktr
parentb75edb885be359c6e1d46a92bb060c76d5b8f168 (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.c48
-rw-r--r--sys/dev/pci/bktr/bktr_card.h6
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 );