summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--share/man/man4/bktr.410
-rw-r--r--sys/dev/pci/bktr/bktr_card.c48
-rw-r--r--sys/dev/pci/bktr/bktr_card.h6
3 files changed, 59 insertions, 5 deletions
diff --git a/share/man/man4/bktr.4 b/share/man/man4/bktr.4
index 941615480f5..b8bdab8c020 100644
--- a/share/man/man4/bktr.4
+++ b/share/man/man4/bktr.4
@@ -29,7 +29,7 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.\" $OpenBSD: bktr.4,v 1.17 2004/09/30 19:59:24 mickey Exp $
+.\" $OpenBSD: bktr.4,v 1.18 2004/10/15 08:59:32 jsg Exp $
.\" $FreeBSD: /c/ncvs/src/share/man/man4/bktr.4,v 1.9.2.5 2001/03/06 19:08:09 ru Exp $
.\"
.Dd January 28, 1998
@@ -59,6 +59,7 @@ The driver also supports FM Radio if the Tuner supports it.
Specifically, the following cards are known to work:
.Bd -unfilled -offset indent
Animation Technologies FlyVideo
+AOpen VA1000
Askey/Dynalink Magic TView
ATI TV-Wonder and Wonder/VE
AverMedia cards
@@ -66,6 +67,7 @@ Hauppauge Wincast TV and WinTV/PCI
IMS TV Turbo
Intel Smart Video Recorder III
I/O DATA GV-BCTV2/PCI
+I/O DATA GV-BCTV3/PCI
KISS TV/FM PCI
Leadtek Winfast TV 2000
Miro PC TV
@@ -112,6 +114,10 @@ Askey/Dynalink Magic TView
AverMedia
.It FLYVIDEO
Animation Technologies FlyVideo
+.It AOPEN_VA1000
+AOpen VA1000
+.It TVWONDER
+ATI TV-Wonder/VE
.It HAUPPAUGE
Hauppauge Wincast TV and WinTV
.It IMS_TURBO
@@ -120,6 +126,8 @@ IMS TV Turbo
Intel Smart Video Recorder III
.It IO_GV
I/O DATA GV-BCTV2/PCI
+.It IO_BCTV3
+I/O DATA GV-BCTV3/PCI
.It KISS
KISS TV/FM PCI
.It LEADTEK
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 );