diff options
author | ahasty <ahasty@FreeBSD.org> | 1998-05-19 03:38:31 +0000 |
---|---|---|
committer | ahasty <ahasty@FreeBSD.org> | 1998-05-19 03:38:31 +0000 |
commit | c812f8700d874ce6051205ee5e050a3a291f0fff (patch) | |
tree | 1a957d6d646cc383cde4709b4c742b5a2170cf0a /sys/pci | |
parent | 47f748361664d230dba64f0eec7e4dbe910b30ca (diff) | |
download | FreeBSD-src-c812f8700d874ce6051205ee5e050a3a291f0fff.zip FreeBSD-src-c812f8700d874ce6051205ee5e050a3a291f0fff.tar.gz |
Reviewed by: ahasty@freebsd.org
Submitted by: Roger Hardiman <roger@cs.strath.ac.uk>
options BROOKTREE_SYSTEM_DEFAULT=BROOKTREE_PAL
in the kernel config file makes the driver's video_open() function
select PAL rather than NTSC. This fixed all the hangs on my
Dual Crystal card when using a PAL video signal.
As a result, you can loose the tsleep (of 2 seconds - now 0.25!!)
which I previously added. (Unless someone else wanted the 0.25
second tsleep).
Diffstat (limited to 'sys/pci')
-rw-r--r-- | sys/pci/brooktree848.c | 41 |
1 files changed, 35 insertions, 6 deletions
diff --git a/sys/pci/brooktree848.c b/sys/pci/brooktree848.c index 255059d..1a1f71c 100644 --- a/sys/pci/brooktree848.c +++ b/sys/pci/brooktree848.c @@ -1,4 +1,4 @@ -/* BT848 1.33 Driver for Brooktree's Bt848 based cards. +/* BT848 1.35 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 @@ -247,6 +247,19 @@ tuner takes a value from 0 to bt848_max_tuner reverse_mute : 0 no effect, 1 reverse tuner mute function some tuners are wired reversed :( +1.34 reverse mute function for ims turbo card + +1.35 Roger Hardiman <roger@cs.strath.ac.uk> + options BROOKTREE_SYSTEM_DEFAULT=BROOKTREE_PAL + in the kernel config file makes the driver's + video_open() function select PAL rather than NTSC. + This fixed all the hangs on my Dual Crystal card + when using a PAL video signal. As a result, you + can loose the tsleep (of 2 seconds - now 0.25!!) + which I previously added. (Unless someone else + wanted the 0.25 second tsleep). + + */ #define DDB(x) x @@ -931,7 +944,7 @@ static const struct CARDTYPE cards[] = { 0, PFC8582_WADDR, /* EEProm type */ (u_char)(256 / EEPROMBLOCKSIZE), /* 256 bytes */ - { 0x00, 0x02, 0x01, 0x01, 1 } } /* audio MUX values */ + { 0x01, 0x02, 0x01, 0x00, 1 } } /* audio MUX values */ }; struct bt848_card_sig bt848_card_signature[1]= { @@ -1533,6 +1546,7 @@ static int video_open( bktr_ptr_t bktr ) { bt848_ptr_t bt848; + int frame_rate; if (bktr->flags & METEOR_OPEN) /* device is busy */ return( EBUSY ); @@ -1550,6 +1564,24 @@ video_open( bktr_ptr_t bktr ) bt848->dstatus = 0x00; /* clear device status reg. */ bt848->adc = SYNC_LEVEL; + +#if BROOKTREE_SYSTEM_DEFAULT == BROOKTREE_PAL + bt848->iform = BT848_IFORM_M_MUX1 | + BT848_IFORM_X_XT1 | + BT848_IFORM_F_PALBDGHI; + bt848->adelay = format_params[BT848_IFORM_F_PALBDGHI].adelay; + bt848->bdelay = format_params[BT848_IFORM_F_PALBDGHI].bdelay; + bktr->format_params = BT848_IFORM_F_PALBDGHI; + frame_rate = 25; +#else + bt848->iform = BT848_IFORM_M_MUX1 | + BT848_IFORM_X_XT0 | + BT848_IFORM_F_NTSCM; + bktr->format_params = BT848_IFORM_F_NTSCM; + frame_rate = 30; +#endif + + bt848->iform = BT848_IFORM_M_MUX1 | BT848_IFORM_X_XT0 | BT848_IFORM_F_NTSCM; @@ -1581,7 +1613,7 @@ video_open( bktr_ptr_t bktr ) bktr->even_fields_captured = 0; bktr->odd_fields_captured = 0; bktr->proc = (struct proc *)0; - set_fps(bktr, 30); + set_fps(bktr, frame_rate); bktr->video.addr = 0; bktr->video.width = 0; bktr->video.banksize = 0; @@ -1593,9 +1625,6 @@ video_open( bktr_ptr_t bktr ) bt848->int_mask = BT848_INT_MYSTERYBIT; /* what does this bit do ??? */ - /* wait .25 seconds while bt848 initialises */ - tsleep( (caddr_t)bktr, PZERO, "btinit", hz/4 ); - return( 0 ); } |