Skip site navigation (1)Skip section navigation (2)
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>