diff options
author | Orion Hodson <orion@FreeBSD.org> | 2003-02-02 17:46:00 +0000 |
---|---|---|
committer | Orion Hodson <orion@FreeBSD.org> | 2003-02-02 17:46:00 +0000 |
commit | f77f2ccb909d9f9e799c545c6a41598e21a1c262 (patch) | |
tree | 84884d5320fcc2319548b4c9d2d087618d90a0ce /sys/dev/bktr/bktr_card.c | |
parent | 62c4150e1ed8059b8c394ef1a53dd50641c7c664 (diff) | |
download | src-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.c | 32 |
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) */ |