summaryrefslogtreecommitdiffstats
path: root/sys/pci
diff options
context:
space:
mode:
authorahasty <ahasty@FreeBSD.org>1998-05-19 03:38:31 +0000
committerahasty <ahasty@FreeBSD.org>1998-05-19 03:38:31 +0000
commitc812f8700d874ce6051205ee5e050a3a291f0fff (patch)
tree1a957d6d646cc383cde4709b4c742b5a2170cf0a /sys/pci
parent47f748361664d230dba64f0eec7e4dbe910b30ca (diff)
downloadFreeBSD-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.c41
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 );
}
OpenPOWER on IntegriCloud