Hi all,
for everyone who need this patch immediately:
This INOFFICIAL patch fixes:
* the make error compiling against kernel 2.2.18
* timeouts using the Buz with NTSC signals
Drop me a mail if there are still problems. Serguei should update the
version on his homepage soon.
I only checked it if it compiles against 2.2.18 - I didn't expect any
deep API change so I left out updating my whole system to 2.2.18 for a
insmod check.
Du to lacking of a good NTSC source I fixed the NTSC/Buz problem with a
DC10 delivering NTSC to a Buz (which I used to fix the driver). So there
may be still some problems with 'real' NTSC signals.
UPDATE: Just change into the zoran driver source directory (containing
driver version 0.7a) and apply the patch with:
make clean
patch -p1 < zoran-0.7.patch
make
./update dc10/buz/lml33
Bye,
Wolfgang
diff -u --new-file --recursive zoran-driver-0.7a/.adv7175.o.flags zoran-driver-0.7/.adv7175.o.flags
--- zoran-driver-0.7a/.adv7175.o.flags Mon Jan 15 18:35:30 2001
+++ zoran-driver-0.7/.adv7175.o.flags Thu Jan 1 01:00:00 1970
@@ -1,3 +0,0 @@
-ifeq (-Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -pipe -fno-strength-reduce -m486 -malign-loops=2 -malign-jumps=2 -malign-functions=2 -DCPU=586 -DMODULE -DMODVERSIONS -include /usr/src/linux/include/linux/modversions.h -DEXPORT_SYMTAB,$(strip $(subst $(comma),:,$(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_adv7175.o))))
-FILES_FLAGS_UP_TO_DATE += adv7175.o
-endif
diff -u --new-file --recursive zoran-driver-0.7a/.bt819.o.flags zoran-driver-0.7/.bt819.o.flags
--- zoran-driver-0.7a/.bt819.o.flags Mon Jan 15 18:35:31 2001
+++ zoran-driver-0.7/.bt819.o.flags Thu Jan 1 01:00:00 1970
@@ -1,3 +0,0 @@
-ifeq (-Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -pipe -fno-strength-reduce -m486 -malign-loops=2 -malign-jumps=2 -malign-functions=2 -DCPU=586 -DMODULE -DMODVERSIONS -include /usr/src/linux/include/linux/modversions.h -DEXPORT_SYMTAB,$(strip $(subst $(comma),:,$(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_bt819.o))))
-FILES_FLAGS_UP_TO_DATE += bt819.o
-endif
diff -u --new-file --recursive zoran-driver-0.7a/.bt856.o.flags zoran-driver-0.7/.bt856.o.flags
--- zoran-driver-0.7a/.bt856.o.flags Mon Jan 15 18:35:32 2001
+++ zoran-driver-0.7/.bt856.o.flags Thu Jan 1 01:00:00 1970
@@ -1,3 +0,0 @@
-ifeq (-Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -pipe -fno-strength-reduce -m486 -malign-loops=2 -malign-jumps=2 -malign-functions=2 -DCPU=586 -DMODULE -DMODVERSIONS -include /usr/src/linux/include/linux/modversions.h -DEXPORT_SYMTAB,$(strip $(subst $(comma),:,$(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_bt856.o))))
-FILES_FLAGS_UP_TO_DATE += bt856.o
-endif
diff -u --new-file --recursive zoran-driver-0.7a/.saa7110.o.flags zoran-driver-0.7/.saa7110.o.flags
--- zoran-driver-0.7a/.saa7110.o.flags Mon Jan 15 18:35:28 2001
+++ zoran-driver-0.7/.saa7110.o.flags Thu Jan 1 01:00:00 1970
@@ -1,3 +0,0 @@
-ifeq (-Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -pipe -fno-strength-reduce -m486 -malign-loops=2 -malign-jumps=2 -malign-functions=2 -DCPU=586 -DMODULE -DMODVERSIONS -include /usr/src/linux/include/linux/modversions.h -DEXPORT_SYMTAB,$(strip $(subst $(comma),:,$(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_saa7110.o))))
-FILES_FLAGS_UP_TO_DATE += saa7110.o
-endif
diff -u --new-file --recursive zoran-driver-0.7a/.saa7111.o.flags zoran-driver-0.7/.saa7111.o.flags
--- zoran-driver-0.7a/.saa7111.o.flags Mon Jan 15 18:35:27 2001
+++ zoran-driver-0.7/.saa7111.o.flags Thu Jan 1 01:00:00 1970
@@ -1,3 +0,0 @@
-ifeq (-Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -pipe -fno-strength-reduce -m486 -malign-loops=2 -malign-jumps=2 -malign-functions=2 -DCPU=586 -DMODULE -DMODVERSIONS -include /usr/src/linux/include/linux/modversions.h -DEXPORT_SYMTAB,$(strip $(subst $(comma),:,$(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_saa7111.o))))
-FILES_FLAGS_UP_TO_DATE += saa7111.o
-endif
diff -u --new-file --recursive zoran-driver-0.7a/.saa7185.o.flags zoran-driver-0.7/.saa7185.o.flags
--- zoran-driver-0.7a/.saa7185.o.flags Mon Jan 15 18:35:29 2001
+++ zoran-driver-0.7/.saa7185.o.flags Thu Jan 1 01:00:00 1970
@@ -1,3 +0,0 @@
-ifeq (-Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -pipe -fno-strength-reduce -m486 -malign-loops=2 -malign-jumps=2 -malign-functions=2 -DCPU=586 -DMODULE -DMODVERSIONS -include /usr/src/linux/include/linux/modversions.h -DEXPORT_SYMTAB,$(strip $(subst $(comma),:,$(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_saa7185.o))))
-FILES_FLAGS_UP_TO_DATE += saa7185.o
-endif
diff -u --new-file --recursive zoran-driver-0.7a/.zoran.o.flags zoran-driver-0.7/.zoran.o.flags
--- zoran-driver-0.7a/.zoran.o.flags Mon Jan 15 18:35:26 2001
+++ zoran-driver-0.7/.zoran.o.flags Thu Jan 1 01:00:00 1970
@@ -1,3 +0,0 @@
-ifeq (-Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -pipe -fno-strength-reduce -m486 -malign-loops=2 -malign-jumps=2 -malign-functions=2 -DCPU=586 -DMODULE -DMODVERSIONS -include /usr/src/linux/include/linux/modversions.h -DEXPORT_SYMTAB,$(strip $(subst $(comma),:,$(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_zoran.o))))
-FILES_FLAGS_UP_TO_DATE += zoran.o
-endif
Binary files zoran-driver-0.7a/adv7175.o and zoran-driver-0.7/adv7175.o differ
Binary files zoran-driver-0.7a/bt819.o and zoran-driver-0.7/bt819.o differ
Binary files zoran-driver-0.7a/bt856.o and zoran-driver-0.7/bt856.o differ
diff -u --new-file --recursive zoran-driver-0.7a/saa7110.c zoran-driver-0.7/saa7110.c
--- zoran-driver-0.7a/saa7110.c Thu Nov 16 15:28:29 2000
+++ zoran-driver-0.7/saa7110.c Mon Jan 15 18:47:38 2001
@@ -49,7 +49,7 @@
#define I2C_DELAY 10 /* 10 us or 100khz */
-#if LINUX_VERSION_CODE < 0x20400
+#if LINUX_VERSION_CODE < 0x20212
typedef struct wait_queue *wait_queue_head_t;
#define init_waitqueue_head(x) do { *(x) = NULL; } while (0)
#endif
Binary files zoran-driver-0.7a/saa7110.o and zoran-driver-0.7/saa7110.o differ
diff -u --new-file --recursive zoran-driver-0.7a/saa7111.c zoran-driver-0.7/saa7111.c
--- zoran-driver-0.7a/saa7111.c Tue Nov 21 06:52:02 2000
+++ zoran-driver-0.7/saa7111.c Mon Jan 15 18:46:22 2001
@@ -43,13 +43,8 @@
#include <linux/version.h>
#include <asm/uaccess.h>
-#if LINUX_VERSION_CODE < 0x20400
#include <linux/i2c.h>
-#else
-#include <linux/i2c-old.h>
-#endif
-
-#include <linux/video_decoder.h>
+#include "linux/video_decoder.h"
#define DEBUG(x) /* Debug driver */
@@ -148,12 +143,8 @@
0x05, 0x00, /* 05 - GAI2=256 */
/* decoder */
- // 0x06, 0xf6, /* 06 - HSB at 13(50Hz) / 17(60Hz) pixels after end of last line */
- //0x06, 0x10, /* 06 - HSB at 13(50Hz) / 17(60Hz) pixels after end of last line */
- 0x06, 0xfa, /* 06 - HSB at 13(50Hz) / 17(60Hz) pixels after end of last line */
- // 0x07, 0xdd, /* 07 - HSS at 113(50Hz) / 117(60Hz) pixels after end of last line */
- // good for xawtv: 0x07, 0xe8, /* 07 - HSS at 113(50Hz) / 117(60Hz) pixels after end of last line */
- 0x07, 0xf9, /* 07 - HSS at 113(50Hz) / 117(60Hz) pixels after end of last line */
+ 0x06, 0xf3, /* 06 - HSB at 13(50Hz) / 17(60Hz) pixels after end of last line */
+ 0x07, 0x13, /* 07 - HSS at 113(50Hz) / 117(60Hz) pixels after end of last line */
0x08, 0xc8, /* 08 - AUFD=1, FSEL=1, EXFIL=0, VTRC=1, HPLL=0, VNOI=0 */
0x09, 0x01, /* 09 - BYPS=0, PREF=0, BPSS=0, VBLB=0, UPTCV=0, APER=1 */
0x0a, 0x80, /* 0a - BRIG=128 */
@@ -421,6 +412,7 @@
{
return i2c_register_driver(&i2c_driver_saa7111);
}
+
Binary files zoran-driver-0.7a/saa7111.o and zoran-driver-0.7/saa7111.o differ
diff -u --new-file --recursive zoran-driver-0.7a/saa7185.c zoran-driver-0.7/saa7185.c
--- zoran-driver-0.7a/saa7185.c Tue Nov 21 06:52:31 2000
+++ zoran-driver-0.7/saa7185.c Mon Jan 15 18:46:23 2001
@@ -49,7 +49,6 @@
#include <linux/i2c-old.h>
#endif
-
#include <linux/video_encoder.h>
#define DEBUG(x) /* Debug driver */
@@ -177,12 +176,14 @@
0x6b, 0x91, /* MODIN=2, PCREF=0, SCCLN=17 */
//0x6c, 0x20, /* SRCV1=0, TRCV2=1, ORCV1=0, PRCV1=0, CBLF=0, ORCV2=0, PRCV2=0 */
- 0x6c, 0x21, /* SRCV1=0, TRCV2=1, ORCV1=0, PRCV1=0, CBLF=0, ORCV2=0, PRCV2=1 */
+ 0x6c, 0x20, /* SRCV1=0, TRCV2=1, ORCV1=0, PRCV1=0, CBLF=0, ORCV2=0, PRCV2=1 */
0x6d, 0x00, /* SRCM1=0, CCEN=0 */
//0x6e, 0x0e, /* HTRIG=0x00e, approx. centered, at least for PAL */
- 0x6e, 0x01, /* HTRIG=0x00e, approx. centered, at least for PAL */
+ //0x6e, 0x1e, /* HTRIG=0x005, approx. centered, at least for PAL */
+ 0x6e, 0x0e, /* HTRIG=0x005, approx. centered, at least for PAL */
0x6f, 0x00, /* HTRIG upper bits */
+ //0x70, 0x20, /* PHRES=0, SBLN=1, VTRIG=0 */
0x70, 0x20, /* PHRES=0, SBLN=1, VTRIG=0 */
/* The following should not be needed */
@@ -235,7 +236,6 @@
if (encoder == NULL) {
return -ENOMEM;
}
-
MOD_INC_USE_COUNT;
memset(encoder, 0, sizeof(struct saa7185));
@@ -263,7 +263,7 @@
{
struct saa7185 * encoder = device->data;
saa7185_write(encoder, 0x61, (encoder->reg[0x61]) | 0x40); /* SW: output off is active */
- saa7185_write(encoder, 0x3a, (encoder->reg[0x3a]) | 0x80); /* SW: color bar */
+ //saa7185_write(encoder, 0x3a, (encoder->reg[0x3a]) | 0x80); /* SW: color bar */
kfree(encoder);
MOD_DEC_USE_COUNT;
return 0;
Binary files zoran-driver-0.7a/saa7185.o and zoran-driver-0.7/saa7185.o differ
diff -u --new-file --recursive zoran-driver-0.7a/zoran.c zoran-driver-0.7/zoran.c
--- zoran-driver-0.7a/zoran.c Sat Nov 18 15:23:28 2000
+++ zoran-driver-0.7/zoran.c Mon Jan 15 18:47:12 2001
@@ -70,7 +70,6 @@
#include <asm/spinlock.h>
#include <linux/i2c.h>
#define ZORAN_HARDWARE VID_HARDWARE_BT848
-#define init_waitqueue_head(x) do { *(x) = NULL; } while (0)
#else
#include <linux/spinlock.h>
#include <linux/vmalloc.h>
@@ -79,6 +78,10 @@
#define ZORAN_HARDWARE VID_HARDWARE_ZR36067
#endif
+#if LINUX_VERSION_CODE < 0x20212
+#define init_waitqueue_head(x) do { *(x) = NULL; } while (0)
+#endif
+
#include <linux/videodev.h>
#include <asm/uaccess.h>
@@ -827,14 +830,20 @@
hcrop1 = 2 * ((tvn->Wa - We) / 4);
hcrop2 = tvn->Wa - We - hcrop1;
HStart = tvn->HStart | 1;
- if(zr->card == LML33) HStart += 62;
- if(zr->card == BUZ) HStart += 67;
+ if (zr->card == LML33) HStart += 62;
+ if (zr->card == BUZ) {
+ if (zr->card==VIDEO_MODE_NTSC)
+ HStart += 58;
+ else
+ HStart += 44;
+ }
HEnd = HStart + tvn->Wa - 1;
HStart += hcrop1;
HEnd -= hcrop2;
reg = ((HStart & ZR36057_VFEHCR_Hmask) << ZR36057_VFEHCR_HStart)
| ((HEnd & ZR36057_VFEHCR_Hmask) << ZR36057_VFEHCR_HEnd);
- reg |= ZR36057_VFEHCR_HSPol;
+ if(zr->card != BUZ)
+ reg |= ZR36057_VFEHCR_HSPol;
btwrite(reg, ZR36057_VFEHCR);
/* Vertical */
@@ -1582,6 +1591,7 @@
{
struct tvnorm *tvn;
u32 reg;
+ unsigned HStart;
tvn = zr->timing;
@@ -1619,7 +1629,7 @@
| (0 << 4) /* SImgPol=0 */
| (0 << 3) /* BLPol=0 */
| (0 << 2) /* FlPol=0 */
- | (0 << 1) /* HSPol=0, sync on falling edge */
+ | (1 << 1) /* HSPol=0, sync on falling edge */
| (1 << 0); /* VSPol=1 */
break;
}
@@ -1686,7 +1696,16 @@
reg += zr->params.img_height; /* Vend */
zr36060_write_16(zr, 0x044, reg);
- reg = zr->params.img_x + tvn->HStart + 64; /* Hstart */
+ HStart = tvn->HStart;
+ if (zr->card == BUZ) {
+ if (zr->card==VIDEO_MODE_NTSC)
+ HStart += 58;
+ else
+ HStart += 44;
+ } else {
+ HStart += 64;
+ }
+ reg = zr->params.img_x + HStart; /* Hstart */
zr36060_write_16(zr, 0x046, reg);
reg += zr->params.img_width; /* Hend */
@@ -3060,8 +3079,11 @@
zr->params.decimation = 1;
zr->params.quality = 50; /* default compression factor 8 */
- zr->params.odd_even = 1;
-
+ if (zr->card == BUZ) { /* I'm not shure if this is only needed for PAL with the Buz... (sw) */
+ zr->params.odd_even = 0;
+ } else {
+ zr->params.odd_even = 1;
+ }
zr->params.APPn = 0;
zr->params.APP_len = 0; /* No APPn marker */
for (i = 0; i < 60; i++)
diff -u --new-file --recursive zoran-driver-0.7a/zoran.h zoran-driver-0.7/zoran.h
--- zoran-driver-0.7a/zoran.h Thu Nov 16 15:28:29 2000
+++ zoran-driver-0.7/zoran.h Mon Jan 15 18:47:26 2001
@@ -30,7 +30,7 @@
#ifndef _BUZ_H_
#define _BUZ_H_
-#if LINUX_VERSION_CODE < 0x20400
+#if LINUX_VERSION_CODE < 0x20212
typedef struct wait_queue *wait_queue_head_t;
#endif
Binary files zoran-driver-0.7a/zoran.o and zoran-driver-0.7/zoran.o differ