aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/bktr/bktr_card.c
diff options
context:
space:
mode:
authorOrion Hodson <orion@FreeBSD.org>2003-02-02 17:46:00 +0000
committerOrion Hodson <orion@FreeBSD.org>2003-02-02 17:46:00 +0000
commitf77f2ccb909d9f9e799c545c6a41598e21a1c262 (patch)
tree84884d5320fcc2319548b4c9d2d087618d90a0ce /sys/dev/bktr/bktr_card.c
parent62c4150e1ed8059b8c394ef1a53dd50641c7c664 (diff)
downloadsrc-f77f2ccb909d9f9e799c545c6a41598e21a1c262.tar.gz
src-f77f2ccb909d9f9e799c545c6a41598e21a1c262.zip
Add BCTV3/PCI entry.
Rename functions bctv_* to bctv2_* and macros BCTV_* to BCTV2_* for coexistance of BCTV2 and BCTV3. Rename CARD_IO_GV to CARD_TO_BCTV2. Add auto recognition of BCTV3/PCI. PR: i386/43879 Submitted by: MOROHOSHI Akihiko <moro@remus.dti.ne.jp> Approved by: roger MFC after: 6 days
Notes
Notes: svn path=/head/; revision=110237
Diffstat (limited to 'sys/dev/bktr/bktr_card.c')
-rw-r--r--sys/dev/bktr/bktr_card.c32
1 files changed, 30 insertions, 2 deletions
diff --git a/sys/dev/bktr/bktr_card.c b/sys/dev/bktr/bktr_card.c
index 39cd7337f553..a37a070e237c 100644
--- a/sys/dev/bktr/bktr_card.c
+++ b/sys/dev/bktr/bktr_card.c
@@ -245,7 +245,7 @@ static const struct CARDTYPE cards[] = {
{ 0x01, 0x02, 0x01, 0x00, 1 }, /* audio MUX values */
0x0f }, /* GPIO mask */
- { CARD_IO_GV, /* the card id */
+ { CARD_IO_BCTV2, /* the card id */
"I/O DATA GV-BCTV2/PCI", /* the 'name' */
NULL, /* the tuner */
0, /* the tuner i2c address */
@@ -342,11 +342,24 @@ static const struct CARDTYPE cards[] = {
{ 0x20000, 0x00000, 0x30000, 0x40000, 1 }, /* audio MUX values*/
0x70000 }, /* 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 */
+
};
struct bt848_card_sig bt848_card_signature[1]= {
/* IMS TURBO TV : card 5 */
- { 5,9, {00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 02, 00, 00, 00}}
+ { 5,9, {00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 02, 00, 00, 00, 00}}
};
@@ -540,7 +553,9 @@ static int locate_eeprom_address( bktr_ptr_t bktr) {
#define PCI_VENDOR_FLYVIDEO 0x1851
#define PCI_VENDOR_FLYVIDEO_2 0x1852
#define PCI_VENDOR_PINNACLE_ALT 0xBD11
+#define PCI_VENDOR_IODATA 0x10fc
+#define MODEL_IODATA_GV_BCTV3_PCI 0x4020
void
probeCard( bktr_ptr_t bktr, int verbose, int unit )
@@ -674,6 +689,14 @@ probeCard( bktr_ptr_t bktr, int verbose, int unit )
goto checkTuner;
}
+ if (subsystem_vendor_id == 0x10fc &&
+ subsystem_id == 0x4020) {
+ 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 - card vendor 0x%04x (model 0x%04x) unknown.\n",
@@ -1086,6 +1109,11 @@ checkTuner:
goto checkDBX;
break;
+ case CARD_IO_BCTV3:
+ select_tuner( bktr, ALPS_TSCH5 ); /* ALPS_TSCH6, in fact. */
+ goto checkDBX;
+ break;
+
} /* end switch(card) */