Hello,
I'm trying to use bt8[47]8 boards for image processing and need to
turn off AGC, or at least turn off `adaptive AGC' (`crush') in the
bttv driver.
The patch below for Gerd's bttv-0.7.51 lets me do this with a new
`initialization flags' parameter.
I can provide a patch for the 2.2.18 bttv version as well, but
according to my experience stream-capturing doesn't work properly in
that version anyway (bttv-0.7.51 seems much better).
Regards,
Wolfram.
--- bttv-0.7.51/driver/bttv-driver.c.orig Sun Dec 17 15:05:48 2000
+++ bttv-0.7.51/driver/bttv-driver.c Wed Dec 27 00:08:08 2000
@@ -72,6 +72,7 @@
unsigned int bttv_debug = 0;
unsigned int bttv_verbose = 1;
unsigned int bttv_gpio = 0;
+static unsigned int init_fl[BTTV_MAX];
/* insmod options */
MODULE_PARM(radio,"1-4i");
@@ -93,9 +94,11 @@
MODULE_PARM(gbufsize,"i");
MODULE_PARM_DESC(gbufsize,"size of the capture buffers, default is 0x208000");
MODULE_PARM(combfilter,"i");
+MODULE_PARM(init_fl,"1-4i");
+MODULE_PARM_DESC(init_fl,"initialization flags, 1 to disable AGC, 2 to disable crush,
+default is 0");
MODULE_DESCRIPTION("bttv - v4l driver module for bt848/878 based cards");
-MODULE_AUTHOR("Ralph Metzler & Marcus Metzler & Gerd Knorr");
+MODULE_AUTHOR("Ralph Metzler & Marcus Metzler & Gerd Knorr");
/* kernel args */
#ifndef MODULE
@@ -2484,6 +2487,7 @@
{
int j;
unsigned long irq_flags;
+ unsigned init_wd;
btv->user=0;
init_MUTEX(&btv->lock);
@@ -2586,8 +2590,12 @@
btwrite(0x20, BT848_E_VSCALE_HI);
btwrite(0x20, BT848_O_VSCALE_HI);
- btwrite(/*BT848_ADC_SYNC_T|*/
- BT848_ADC_RESERVED|BT848_ADC_CRUSH, BT848_ADC);
+ init_wd = BT848_ADC_RESERVED;
+ if (init_fl[btv->nr] & 1)
+ init_wd |= BT848_ADC_AGC_EN; /* disable AGC */
+ if (!(init_fl[btv->nr] & 2))
+ init_wd |= BT848_ADC_CRUSH; /* adaptive AGC */
+ btwrite(/*BT848_ADC_SYNC_T|*/ init_wd, BT848_ADC);
btwrite(BT848_CONTROL_LDEC, BT848_E_CONTROL);
btwrite(BT848_CONTROL_LDEC, BT848_O_CONTROL);
_______________________________________________
Video4linux-list mailing list
[EMAIL PROTECTED]
https://listman.redhat.com/mailman/listinfo/video4linux-list