Date: Sat, 15 Mar 1997 11:06:13 -0800 From: Amancio Hasty <hasty@rah.star-gate.com> To: multimedia@freebsd.org Subject: bt848 driver patch Message-ID: <199703151906.LAA00363@rah.star-gate.com>
next in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
Fixes the problem with the Bt848 refusing to capture due to an error
while processing the video capture stream. This problem can be caused
by excessive bus latency, PCI errors during video transfer or
reading the risc program.
The problem is exhibited by Steve's tuner program when switching channels.
Apply this patch to the FreeBSD 3.0-currrent version of the driver
Have fun ,
Amancio
[-- Attachment #2 --]
*** brooktree848.c.orig Sat Mar 15 10:54:04 1997
--- brooktree848.c Sat Mar 15 10:47:46 1997
***************
*** 327,333 ****
}
/* if risc was disabled re-start process again */
! if (!(bktr_status & (1 << 27)) || ((bktr_status & 0xfe000) != 0) ) {
btl_reg = (u_long *) &bt848[BKTR_INT_STAT];
*btl_reg = *btl_reg;
--- 327,333 ----
}
/* if risc was disabled re-start process again */
! if (!(bktr_status & (1 << 27)) || ((bktr_status & 0xff000) != 0) ) {
btl_reg = (u_long *) &bt848[BKTR_INT_STAT];
*btl_reg = *btl_reg;
***************
*** 347,352 ****
--- 347,353 ----
btl_reg = (u_long *) &bt848[BKTR_INT_MASK];
*btl_reg = 1 << 23 | 1 << 11 | 2 | 1;
+ bt848[BKTR_CAP_CTL] = bktr->bktr_cap_ctl;
return;
}
***************
*** 900,917 ****
--- 901,921 ----
/* capture control */
switch (i_flag) {
case 1:
+ bktr->bktr_cap_ctl = 0x11;
bt848[BKTR_CAP_CTL] = 0x11;
bt848[BKTR_E_VSCALE_HI] &= ~0x20;
bt848[BKTR_O_VSCALE_HI] &= ~0x20;
interlace = 1;
break;
case 2:
+ bktr->bktr_cap_ctl = 0x12;
bt848[BKTR_CAP_CTL] = 0x12;
bt848[BKTR_E_VSCALE_HI] &= ~0x20;
bt848[BKTR_O_VSCALE_HI] &= ~0x20;
interlace = 1;
break;
default:
+ bktr->bktr_cap_ctl = 0x13;
bt848[0xdc] = 0x13;
bt848[BKTR_E_VSCALE_HI] |= 0x20;
bt848[BKTR_O_VSCALE_HI] |= 0x20;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199703151906.LAA00363>
