summaryrefslogtreecommitdiffstats
path: root/sys/pci
diff options
context:
space:
mode:
authorsos <sos@FreeBSD.org>1998-09-30 21:06:55 +0000
committersos <sos@FreeBSD.org>1998-09-30 21:06:55 +0000
commitb5f3a9be5a105cf76a41128711e05f0e60f380f1 (patch)
treeea2a34085ac6fde358a35e66f3481d6c8a2849a2 /sys/pci
parent43ca1cb7721cb546e1feb4239f1a6b3f2dea1f38 (diff)
downloadFreeBSD-src-b5f3a9be5a105cf76a41128711e05f0e60f380f1.zip
FreeBSD-src-b5f3a9be5a105cf76a41128711e05f0e60f380f1.tar.gz
Hauppauge Tech Support confirmed all Hauppauge 878 PAL/SECAM boards
will use PLL mode. Added to card probe. Thanks to Ken and Fred. Submitted by: Roger Hardiman <roger@cs.strath.ac.uk>
Diffstat (limited to 'sys/pci')
-rw-r--r--sys/pci/brooktree848.c45
1 files changed, 33 insertions, 12 deletions
diff --git a/sys/pci/brooktree848.c b/sys/pci/brooktree848.c
index bffd241..255ea8c 100644
--- a/sys/pci/brooktree848.c
+++ b/sys/pci/brooktree848.c
@@ -1,5 +1,5 @@
$Id$
-/* BT848 1.54 Driver for Brooktree's Bt848 based cards.
+/* BT848 Driver for Brooktree's Bt848 based cards.
The Brooktree BT848 Driver driver is based upon Mark Tinguely and
Jim Lowe's driver for the Matrox Meteor PCI card . The
Philips SAA 7116 and SAA 7196 are very different chipsets than
@@ -311,6 +311,11 @@ $Id$
1.54 18 Sep 1998 Roger Hardiman <roger@cs.strath.ac.uk>
Changed tuner code to autodetect tuner i2c address.
Addresses were incorrectly hardcoded.
+
+1.55 21 Sep 1998 Roger Hardiman <roger@cs.strath.ac.uk>
+ Hauppauge Tech Support confirmed all Hauppauge 878
+ PAL/SECAM boards will use PLL mode.
+ Added to card probe. Thanks to Ken and Fred.
*/
#define DDB(x) x
@@ -909,7 +914,7 @@ static const struct TUNER tuners[] = {
#define CARD_STB 3
#define CARD_INTEL 4
#define CARD_IMS_TURBO 5
-#define CARD_AVER_MEDIA 6
+#define CARD_AVER_MEDIA 6
#define Bt848_MAX_CARD 7
/*
@@ -989,6 +994,7 @@ static const struct CARDTYPE cards[] = {
0, /* EEProm type */
0, /* EEProm size */
{ 0x0c, 0x00, 0x0b, 0x0b, 1 } }, /* audio MUX values */
+
};
struct bt848_card_sig bt848_card_signature[1]= {
@@ -1660,12 +1666,13 @@ video_open( bktr_ptr_t bktr )
bt848->bdelay = format_params[bktr->format_params].bdelay;
frame_rate = format_params[bktr->format_params].frame_rate;
-#ifdef BKTR_USE_PLL
- bt848->tgctrl=0;
- bt848->pll_f_lo=0xf9;
- bt848->pll_f_hi=0xdc;
- bt848->pll_f_xci=0x8e;
-#endif
+ /* enable PLL mode using 28Mhz crystal for PAL/SECAM users */
+ if (bktr->xtal_pll_mode == BT848_USE_PLL) {
+ bt848->tgctrl=0;
+ bt848->pll_f_lo=0xf9;
+ bt848->pll_f_hi=0xdc;
+ bt848->pll_f_xci=0x8e;
+ }
bktr->flags = (bktr->flags & ~METEOR_DEV_MASK) | METEOR_DEV0;
@@ -3861,13 +3868,12 @@ build_dma_prog( bktr_ptr_t bktr, char i_flag )
/* end of video params */
-#ifdef BKTR_USE_PLL
- if (fp->iform_xtsel==BT848_IFORM_X_XT1) {
+ if ((bktr->xtal_pll_mode == BT848_USE_PLL)
+ && (fp->iform_xtsel==BT848_IFORM_X_XT1)) {
bt848->tgctrl=8; /* Select PLL mode */
} else {
bt848->tgctrl=0; /* Select Normal xtal 0/xtal 1 mode */
}
-#endif
/* capture control */
switch (i_flag) {
@@ -4623,7 +4629,8 @@ checkTuner:
/* At this point, a goto checkDBX has not occured */
/* We have not been able to select a Tuner */
/* Some cards make use of the tuner address to */
- /* identifty the make/model of tuner */
+ /* identify the make/model of tuner */
+
/* At address 0xc0/0xc1 we often find a TEMIC NTSC */
if ( i2cRead( bktr, 0xc1 ) != ABSENT ) {
bktr->card.tuner = &tuners[ TEMIC_NTSC ];
@@ -4673,6 +4680,20 @@ checkMSP:
checkEnd:
+checkPLL:
+#if defined( BKTR_USE_PLL )
+ bktr->xtal_pll_mode = BT848_USE_PLL;
+ goto checkPLLEnd;
+#endif
+ /* Enable PLL mode for PAL/SECAM users on Hauppauge 878 cards */
+ bktr->xtal_pll_mode = BT848_USE_XTALS;
+
+ if ((card == CARD_HAUPPAUGE) &&
+ (bktr->id==BROOKTREE_878_ID || bktr->id==BROOKTREE_879_ID) )
+ bktr->xtal_pll_mode = BT848_USE_PLL;
+checkPLLEnd:
+
+
bktr->card.tuner_pllAddr = tuner_i2c_address;
if ( verbose ) {
OpenPOWER on IntegriCloud