On Wednesday 22 November 2006 22:49, Hans Verkuil wrote:

> All versions of ivtv-0.4.x are valid for kernels <= 2.6.15. So start
> with ivtv-0.4.0, then 0.3.4, etc. All versions are available here:
> http://dl.ivtvdriver.org/ivtv/archive/
>
Ok, I found the last ivtv-driver that works for me: 0.3.2s.
The next one 0.3.2u is really horrible: not only black and white, but also 
diagonal red and green stripes (interference like).
I've attached the diffs from s to u, any suggestions as to what the culprit 
could be and how this could help with the current driver are appreciated.

(In the course of my inverstigations I tried 0.4.7, 0.3.4z, 0.3.4, 
0.3.3,0.3.2r, 0.3.2s and 0.3.2v: all were bad).

Cheers,

Han Holl
Only in ivtv-0.3.2s/driver/: cx25840.c
diff -ur ivtv-0.3.2s/driver/cx25840-driver.c ivtv-0.3.2u/driver/cx25840-driver.c
--- ivtv-0.3.2s/driver/cx25840-driver.c	2005-04-05 18:56:01.000000000 +0200
+++ ivtv-0.3.2u/driver/cx25840-driver.c	2005-04-07 15:49:59.000000000 +0200
@@ -224,24 +224,18 @@
 	return retval;
 }
 
-static inline int read_reg_byte(struct i2c_client *client, u16 addr)
+static inline int cx25840_write(struct i2c_client *client, u16 addr, u8 value)
 {
-	u8 buff[2] = { addr >> 8, addr & 0xff };
-	int ret;
-
-	ret = i2c_master_send(client, buff, 2);
-	if (ret != 2) {
-		ERR("I2C write failed, length %d, ret %d", 1, ret);
-		return -1;
-	}
-
-	ret = i2c_master_recv(client, buff, 1);
-	if (ret != 1) {
-		ERR("I2C sequence recv failed, length %d, ret %d", 1, ret);
-		return -1;
-	}
+	u8 buffer[3] = { addr >> 8, addr & 0xff, value };
+	return i2c_master_send(client, buffer, 3);
+}
 
-	return buff[0];
+static inline u8 cx25840_read(struct i2c_client *client, u16 addr)
+{
+	u8 buffer[2] = { addr >> 8, addr & 0xff };
+	i2c_master_send(client, buffer, 2);
+	i2c_master_recv(client, buffer, 1);
+	return buffer[0];
 }
 
 static void update_setting(struct i2c_client *client, u16 setting,
@@ -250,15 +244,15 @@
 	u16 addr = CX25840_REGISTER_ADDRESS(CX25840_SETTING_REGISTER_INDEX(setting));
 	int s = CX25840_SETTING_START_BIT(setting);
 	int l = CX25840_SETTING_BIT_LENGTH(setting);
+	u8 byte, mask;
 
 	while (l > 0) {
-		u8 buffer[3] = { addr >> 8, addr & 0xff, 0x00 };
-		u8 mask = (0xff >> (8 - (l > 8 ? 8 : l))) << s;
+		mask = (0xff >> (8 - (l > 8 ? 8 : l))) << s;
 
-		buffer[2] = read_reg_byte(client, addr++) & ~mask;
-		buffer[2] |= (mask & (value << s));
+		byte = cx25840_read(client, addr) & ~mask;
+		byte |= (mask & (value << s));
 
-		i2c_master_send(client, buffer, 3);
+		cx25840_write(client, addr++, byte);
 
 		l -= 8 - s;
 		value >>= (8 - s);
@@ -276,7 +270,7 @@
 	u32 value = 0;
 	int i = 0;
 	while (rl-- > 0)
-		value |= read_reg_byte(client, addr++) << (i++ * 8);
+		value |= cx25840_read(client, addr++) << (i++ * 8);
 
 	return (value >> s) & (0xffffffff >> (32 - l));
 }
@@ -550,7 +544,7 @@
 	CX25840_SET_COMB_NOTCH_MODE(0x0001);	// 'Notch data is interpreted as chroma' (Default 0x000a) Reg: 0x0402 Start bit: 2 Bit length: 2
 	CX25840_SET_OUT_MODE(0x0002);	// '*' (Default 0x0001) Reg: 0x0404 Start bit: 0 Bit length: 2
 	CX25840_SET_MODE10B(0x0001);	// 'Luma and Chroma Output have 10 bits of resolution' (Default 0x0000) Reg: 0x0404 Start bit: 2 Bit length: 1
-	//CX25840_SET_VBIHACTRAW_EN(0x0001);	// 'Enable' (Default 0x0000) Reg: 0x0404 Start bit: 3 Bit length: 1
+	CX25840_SET_VBIHACTRAW_EN(0x0001);	// 'Enable' (Default 0x0000) Reg: 0x0404 Start bit: 3 Bit length: 1
 	CX25840_SET_VIPCLAMP_EN(0x0001);	// 'Enable' (Default 0x0000) Reg: 0x0406 Start bit: 4 Bit length: 1
 	CX25840_SET_BRIGHT(0x00f4);	// '*' (Default 0x0000) Reg: 0x0414 Start bit: 0 Bit length: 8
 	CX25840_SET_CNTRST(0x0079);	// '*' (Default 0x0080) Reg: 0x0415 Start bit: 0 Bit length: 8
@@ -567,7 +561,7 @@
 	CX25840_SET_LCOMB_3LN_EN(0x0000);	// 'Disable' (Default 0x0001) Reg: 0x047b Start bit: 2 Bit length: 1
 	CX25840_SET_CCOMB_3LN_EN(0x0000);	// 'Disable' (Default 0x0001) Reg: 0x047b Start bit: 6 Bit length: 1
 	CX25840_SET_SC_STEP(0x0a8263);	// '*' (Default 0x001f) Reg: 0x047c Start bit: 0 Bit length: 8
-	//CX25840_SET_VBI_OFFSET(0x0001);	// '*' (Default 0x0000) Reg: 0x047f Start bit: 0 Bit length: 5
+	CX25840_SET_VBI_OFFSET(0x0001);	// '*' (Default 0x0000) Reg: 0x047f Start bit: 0 Bit length: 5
 	CX25840_SET_COMB_PHASE_LIMIT(0x0014);	// '*' (Default 0x0020) Reg: 0x049f Start bit: 0 Bit length: 8
 	CX25840_SET_AUD_MODE_AUD_SYSTEM(0x000f);	// '*' (Default 0x0000) Reg: 0x0808 Start bit: 0 Bit length: 4
 	CX25840_SET_AUD_STANDARD(0x000f);	// '*' (Default 0x0000) Reg: 0x0808 Start bit: 4 Bit length: 4
@@ -593,11 +587,11 @@
 	CX25840_SET_TSE(0x0001);	// 'Transmit FIFO/Idle interrupt enabled' (Default 0x0000) Reg: 0x0214 Start bit: 5 Bit length: 1
 	CX25840_SET_IDID1_9_2__LOW(0x0080);	// '*' (Default 0x0000) Reg: 0x0409 Start bit: 0 Bit length: 8
 	CX25840_SET_TTX_PKTADRU_LN(0x000f);	// '*' (Default 0x0457) Reg: 0x043e Start bit: 4 Bit length: 4
-	//CX25840_SET_VBI2_SDID(0x000a);	// '*' (Default 0x03f2) Reg: 0x0440 Start bit: 4 Bit length: 4
-	//CX25840_SET_VBI3_SDID(0x000b);	// '*' (Default 0x03f3) Reg: 0x0441 Start bit: 0 Bit length: 4
-	//CX25840_SET_VBI1_FIFO_MODE(0x0002);	// '*' (Default 0x0008) Reg: 0x0457 Start bit: 4 Bit length: 3
-	//CX25840_SET_VBI1_CRIWIN(0x0054);	// '*' (Default 0x002c) Reg: 0x045b Start bit: 0 Bit length: 7
-	//CX25840_SET_VBI2_FIFO_MODE(0x0003);	// '*' (Default 0x0009) Reg: 0x0463 Start bit: 4 Bit length: 3
+	CX25840_SET_VBI2_SDID(0x000a);	// '*' (Default 0x03f2) Reg: 0x0440 Start bit: 4 Bit length: 4
+	CX25840_SET_VBI3_SDID(0x000b);	// '*' (Default 0x03f3) Reg: 0x0441 Start bit: 0 Bit length: 4
+	CX25840_SET_VBI1_FIFO_MODE(0x0002);	// '*' (Default 0x0008) Reg: 0x0457 Start bit: 4 Bit length: 3
+	CX25840_SET_VBI1_CRIWIN(0x0054);	// '*' (Default 0x002c) Reg: 0x045b Start bit: 0 Bit length: 7
+	CX25840_SET_VBI2_FIFO_MODE(0x0003);	// '*' (Default 0x0009) Reg: 0x0463 Start bit: 4 Bit length: 3
 	CX25840_SET_HACTIVE_CNT(0x02d0);	// '*' (Default 0x0000) Reg: 0x0471 Start bit: 4 Bit length: 10
 	CX25840_SET_FIELD_COUNT(0x03c3);	// '*' (Default 0x0000) Reg: 0x0480 Start bit: 0 Bit length: 10
 	CX25840_SET_AGC_GAIN(0x049f);	// '*' (Default 0x0100) Reg: 0x0489 Start bit: 0 Bit length: 12
@@ -729,7 +723,7 @@
 			if (CX25840_SETTING_TYPE(i) == RW) {
 				b = state->reg_cache[ri];
 			} else {
-				b = read_reg_byte(client, addr);
+				b = cx25840_read(client, addr);
 			}
 
 			if (b < 0) {
@@ -1130,23 +1124,23 @@
                         state->enable = enable;
 
                         if (state->enable) {
-                                cx25840_write_01(client, 0x15, 
-					cx25840_read_01(client, 0x15)|0x04);
-                                cx25840_write_01(client, 0x16,
-					cx25840_read_01(client, 0x16)|0x04);
+                                cx25840_write_04(client, 0x15, 
+					(cx25840_read_04(client, 0x15)|0x04));
+                                cx25840_write_04(client, 0x16,
+					(cx25840_read_04(client, 0x16)|0x04));
 				if (no_black_magic == 0) {
 					// 01063 time 3:37.684
 					WI2C(4, 0x43, 0x00, 0x16, 0x70, 0x4a);
 				}
                         } else {
-                                cx25840_write_01(client, 0x15,
-					cx25840_read_01(client, 0x15)&0xfb);
-                                cx25840_write_01(client, 0x16,
-					cx25840_read_01(client, 0x16)&0xfb);
+                                cx25840_write_04(client, 0x15,
+					(cx25840_read_04(client, 0x15)&0xfb));
+                                cx25840_write_04(client, 0x16,
+					(cx25840_read_04(client, 0x16)&0xfb));
                         }
                 }
-                cx25840_write_04(client, 0xA5, 0x80); /*Assert Video Reset */
-                cx25840_write_04(client, 0xA5, 0x00); /*DeAssert Video Reset */
+                //cx25840_write(client, 0x4A5, 0x80); /*Assert Video Reset */
+                //cx25840_write(client, 0x4A5, 0x00); /*DeAssert Video Reset */
                 break;
 	}
 
@@ -1203,33 +1197,94 @@
 	{
 		int set = *(int *)arg;
 		int is_pal = (state->norm != VIDEO_MODE_NTSC);
-		int i;
+		int i, x;
 		int val = 0x00;
+                u8 lcr[17];
+		int vbi_offset = 0x01;
+
+		ERR("Setup VBI");
+
+                for (x = 0; x <= 17; x++)
+                        lcr[x] = 0x00;
 
 		/* VBI Offset */
-		cx25840_write_04(client, 0x7F, 0x01);	
+		if (!is_pal)
+			vbi_offset = 0x04;	
+		cx25840_write_04(client, 0x7F, vbi_offset);	
 
 		/* CC Fifo Reset */
-		cx25840_write_04(client, 0x42, 0x0f);
-		cx25840_write_04(client, 0x42, 0x00);
+		//cx25840_write_04(client, 0x42, 0x0f);
+		//cx25840_write_04(client, 0x42, 0x00);
 
 		/* CC Raw Data Enable */
 		cx25840_write_04(client, 0x04, 
 			cx25840_read_04(client, 0x04)|0x08);
 
 		/* Enable Ancillary Data Insertion */ 
+		//cx25840_write_04(client, 0x04, 
+			//cx25840_read_04(client, 0x04)|0x16);
+
+		/* Enable 656 Control codes */ 
 		cx25840_write_04(client, 0x04, 
-			cx25840_read_04(client, 0x04)|0x16);
+			(cx25840_read_04(client, 0x04)&0xfc)|0x01);
+
+		/* Frame Code Search */ 
+		cx25840_write_04(client, 0x38, 
+			cx25840_read_04(client, 0x38)|0x01);
+
+		/* VBI Misc 1 */ 
+		cx25840_write_04(client, 0x3c, 0x06);
+
+		/* VBI1_HDELAY */
+		cx25840_write_04(client, 0x4c, 0x70);
+
+		/* VBI1_BITINC_LOW */
+		cx25840_write_04(client, 0x4d, 0x99);
+
+		/* VBI1 Slice Distance */
+		cx25840_write_04(client, 0x4e, 0x16);
+
+		/* VBI1 Clock Run In Window */
+		cx25840_write_04(client, 0x4f, 0x2c);
 
-		ERR("SDID: 0x%08x", cx25840_read_04(client, 0x40)&0x7);
+		/* VBI1 Frame Code Low Byte */
+		cx25840_write_04(client, 0x50, 0x01);
+
+		/* VBI1 Frame Code mid Byte */
+		cx25840_write_04(client, 0x51, 0x00);
+
+		/* VBI1 Frame Code high Byte */
+		cx25840_write_04(client, 0x52, 0x00);
+
+		/* VBI1 Frame Code length */
+		cx25840_write_04(client, 0x53, 0x03);
+
+		/* VBI1 Custom 1 Clock Run-in Period */
+		cx25840_write_04(client, 0x54, 0x0D);
+
+		/* VBI1 Custom 1 Clock Run-in Margin and Length */
+		cx25840_write_04(client, 0x55, 0xC4);
+
+		/* VBI1 Custom 1 Payload Length */
+		cx25840_write_04(client, 0x56, 0x08);
+
+		/* VBI1 Custom 1 Misc 0x26 -pld-fifo*/
+		cx25840_write_04(client, 0x57, 0x26);
+
+		/* VBI1 Custom 1 VBI Clock Run-In Window */
+		cx25840_write_04(client, 0x5b, 0x2c);
 
 		if (set == 0) {
-			if (is_pal)
-				val = 0x00;
-			else
-				val = 0xaa;
-			for (i = 0x24; i <= 0x34; i++) {
-				cx25840_write_04(client, i, val);	
+			if (is_pal) {
+				val = 0x66;
+				for (i = 0x24; i <= 0x34; i++) {
+					cx25840_write_04(client, i, val);	
+				}
+			} else {
+				val = 0x66;
+				for (i = 0x24; i <= 0x34; i++) {
+					cx25840_write_04(client, i, val);	
+				}
 			}
 			break;
 		}
@@ -1242,30 +1297,30 @@
 		}
 		if (set & IVTV_SLICED_CAPTION_625) {
 			if (is_pal)
-				val = 0x00;	
+				val = 0x66;	
 			else
 				ERR("PAL Closed Caption not supported for NTSC");
 		}
 		if (set & IVTV_SLICED_CAPTION_525) {
-			if (!is_pal)
-				val = 0xaa;	
-			else
+			if (!is_pal) {
+				lcr[16] = 0x66;	
+			} else
 				ERR("NTSC Closed Caption not supported for PAL");
 		}
 		if (set & IVTV_SLICED_WSS_625) {
 			if (is_pal)
-				val = 0x00;	
+				val = 0x44;	
 			else
 				ERR("WSS not supported for NTSC");
 		}
 		if (set & IVTV_SLICED_VPS) {
 			if (is_pal)
-				val = 0x00;
+				val = 0x77;
 			else
 				ERR("VPS not supported for NTSC");
 		}
-		for (i = 0x24; i <= 0x34; i++) {
-			cx25840_write_04(client, i, val);	
+		for (x = 0, i = 0x24; i <= 0x34; i++, x++) {
+			cx25840_write_04(client, i, lcr[x]);	
 		}
 		break;
 	}
diff -ur ivtv-0.3.2s/driver/cx25840-registers.c ivtv-0.3.2u/driver/cx25840-registers.c
--- ivtv-0.3.2s/driver/cx25840-registers.c	2005-04-04 23:06:20.000000000 +0200
+++ ivtv-0.3.2u/driver/cx25840-registers.c	2005-04-07 02:31:00.000000000 +0200
@@ -375,6 +375,8 @@
 	DEFINE_REGISTER_INFO_ENTRY(0x09c1, RO),
 	DEFINE_REGISTER_INFO_ENTRY(0x09c2, RO)
 };
+
+#ifdef CX25840_STRINGS
 char *cx25840_register_name[] = {
 	"Host_Register_1",
 	"Host_Register_2",
@@ -739,6 +741,8 @@
 	"RDS_I_High",
 	"RDS_Q_Low"
 };
+#endif
+
 __u8 cx25840_register_default[] = {
 	0x04,
 	0x00,
@@ -1103,6 +1107,8 @@
 	0x00,
 	0x00
 };
+
+#ifdef CX25840_STRINGS
 value_map SLEEP_value_map[] = {
 	{0x0000, "Do not power down"},
 	{0x0001, "Power down"},
@@ -3076,6 +3082,15 @@
 };
 
 #define DEFINE_SETTING_ENTRY(name, rname, sbit, bitl, type, default, vptr, des) { (((rname)&0x1ff)<<0)|(((sbit)&0x7)<<9)|(((bitl)&0x1f)<<12)|(((type)&0xf)<<17),default, name, vptr, des }
+#else
+
+value_map NULL__value_map[] = {
+	{0, 0}
+};
+
+#define DEFINE_SETTING_ENTRY(name, rname, sbit, bitl, type, default, vptr, des) { (((rname)&0x1ff)<<0)|(((sbit)&0x7)<<9)|(((bitl)&0x1f)<<12)|(((type)&0xf)<<17),default, "", NULL__value_map, "" }
+#endif
+
 cx25840_setting_entry cx25840_settings[] = {
 	DEFINE_SETTING_ENTRY("SLEEP", Host_Register_1, 0, 1, RW, 0x0000,
 			     SLEEP_value_map,
diff -ur ivtv-0.3.2s/driver/ivtv-cards.c ivtv-0.3.2u/driver/ivtv-cards.c
--- ivtv-0.3.2s/driver/ivtv-cards.c	2005-03-31 17:44:15.000000000 +0200
+++ ivtv-0.3.2u/driver/ivtv-cards.c	2005-04-07 15:47:17.000000000 +0200
@@ -468,13 +468,6 @@
 
 static const struct ivtv_card ivtv_card_list[] = {
 	{
-	 .type = IVTV_CARD_PVR_150,
-	 .name = "WinTV PVR 150",
-	 .v4l2_capabilities = V4L2_CAP_ENCODER,
-	 .i2c_tuner_addr = IVTV_TUNER_I2C_ADDR,
-	 .audio_selector = USE_CX25840,
-	 .pci_list = ivtv_pci_pvr150,
-	 }, {
 	     .type = IVTV_CARD_PVR_250,
 	     .name = "WinTV PVR 250",
 	     .v4l2_capabilities = V4L2_CAP_ENCODER,
@@ -510,6 +503,13 @@
 			     .audio_selector = USE_GPIO,
 			     .pci_list = ivtv_pci_mpg160,
 			     }, {
+         			.type = IVTV_CARD_PVR_150,
+         			.name = "WinTV PVR 150",
+         			.v4l2_capabilities = V4L2_CAP_ENCODER,
+         			.i2c_tuner_addr = IVTV_TUNER_I2C_ADDR,
+         			.audio_selector = USE_CX25840,
+         			.pci_list = ivtv_pci_pvr150,
+         			}, {
 				 .type = IVTV_CARD_PG600,
 				 .name =
 				 "YUAN PG600/DIAMOND PVR-550 (CX FALCON2)",
diff -ur ivtv-0.3.2s/driver/ivtv-driver.h ivtv-0.3.2u/driver/ivtv-driver.h
--- ivtv-0.3.2s/driver/ivtv-driver.h	2005-04-05 19:11:11.000000000 +0200
+++ ivtv-0.3.2u/driver/ivtv-driver.h	2005-04-07 02:31:47.000000000 +0200
@@ -128,7 +128,7 @@
 #define IVTV_DRIVER_VERSION_MAJOR 0
 #define IVTV_DRIVER_VERSION_MINOR 3
 #define IVTV_DRIVER_VERSION_PATCHLEVEL 2
-#define IVTV_DRIVER_VERSION_COMMENT "s"
+#define IVTV_DRIVER_VERSION_COMMENT "u"
 #define IVTV_VERSION __stringify(IVTV_DRIVER_VERSION_MAJOR) "." __stringify(IVTV_DRIVER_VERSION_MINOR) "." __stringify(IVTV_DRIVER_VERSION_PATCHLEVEL) "-" IVTV_DRIVER_VERSION_COMMENT
 
 #define IVTV_DRIVER_VERSION KERNEL_VERSION(IVTV_DRIVER_VERSION_MAJOR,IVTV_DRIVER_VERSION_MINOR,IVTV_DRIVER_VERSION_PATCHLEVEL)
diff -ur ivtv-0.3.2s/driver/ivtv-fileops.c ivtv-0.3.2u/driver/ivtv-fileops.c
--- ivtv-0.3.2s/driver/ivtv-fileops.c	2005-03-31 17:44:15.000000000 +0200
+++ ivtv-0.3.2u/driver/ivtv-fileops.c	2005-04-07 02:24:38.000000000 +0200
@@ -301,6 +301,85 @@
 
 	IVTV_DEBUG(IVTV_DEBUG_INFO, "ivtv_read: stream %d.. \n", type);
 
+#if 0
+        if (itv->card->type == IVTV_CARD_PVR_150 ||
+                        itv->card->type == IVTV_CARD_PG600)
+        {
+                if (type == IVTV_ENC_STREAM_TYPE_VBI) {
+                        struct ivtv_saa71xx_reg saa7115_reg;
+                        u8 reg_ret = 0x00;
+                        int bytes_read = 0;
+                        int x = 0;
+                        int stat = 0;
+                        /* buf, count */
+
+                        ivtv_set_irq_mask(itv, IVTV_IRQ_ENC_VBI_CAP);
+
+                        while (1) {
+				u8 *p;
+
+                        	saa7115_reg.reg = 0x44;
+                        	saa7115_reg.val = 0x00;
+                        	reg_ret =
+                                	ivtv_cx25840(itv, 
+						DECODER_GET_REG, &saa7115_reg);
+                        	while (!(saa7115_reg.val & 0x20)) {
+                                	if (signal_pending(current)) {
+                                        	IVTV_DEBUG(IVTV_DEBUG_ERR,
+                                                	"ENC: User stopped "
+							"capture.\n");
+
+                                        	return -EINTR;
+                                	}
+                                	ivtv_sleep_timeout(HZ/100, 1);
+                                	if (x++ > 25)
+                                        	break;
+                                	reg_ret =
+                                        	ivtv_cx25840(itv, 
+							DECODER_GET_REG,
+                                                        &saa7115_reg);
+                        	}
+
+                        	if (!saa7115_reg.val&0x20)
+					break;
+
+                                stat = saa7115_reg.val;
+                                /* Get 1 byte */
+                                saa7115_reg.reg = 0x45;
+                                reg_ret = ivtv_cx25840(itv,
+                                        DECODER_GET_REG, &saa7115_reg);
+
+                                /*IVTV_DEBUG(IVTV_DEBUG_ERR,
+                                        "VBI: read %d bytes "
+                                        "value 0x%08x status 0x%08x\n",
+                                        bytes_read, saa7115_reg.val, stat);*/
+
+				p = (u8 *) ((uintptr_t) &saa7115_reg.val);
+
+                        	if (copy_to_user((char *)((uintptr_t) 
+					ubuf + bytes_read++), p, 1)) 
+				{
+                                	IVTV_DEBUG(IVTV_DEBUG_ERR,
+                                           "ENC: VBI copy to user failed\n");
+                                	return -EFAULT;
+				}
+
+                                if (bytes_read >= count)
+                                        break;
+
+                                if (signal_pending(current)) {
+                                        IVTV_DEBUG(IVTV_DEBUG_ERR,
+                                                "ENC: User stopped capture.\n");
+
+                                        return -EINTR;
+                                }
+                        }
+                        *pos += bytes_read;
+                        return bytes_read;
+		}
+	}
+#endif
+
 	IVTV_DEBUG(IVTV_DEBUG_INFO,
 		   "ENC: %d bufs, 0x%08x fill; %d free %d dma %d full %d io\n",
 		   atomic_read(&st->allocated_buffers),
@@ -784,7 +863,6 @@
 	}
 
 	vbi_stream = &itv->streams[IVTV_ENC_STREAM_TYPE_VBI];
-
 	/* Note: yes, we could combine the ifs below into one
 	   big if, but this is more readable. */
 
diff -ur ivtv-0.3.2s/driver/ivtv-osd.c ivtv-0.3.2u/driver/ivtv-osd.c
--- ivtv-0.3.2s/driver/ivtv-osd.c	2005-04-04 21:03:23.000000000 +0200
+++ ivtv-0.3.2u/driver/ivtv-osd.c	2005-04-06 19:03:30.000000000 +0200
@@ -935,9 +935,8 @@
 #endif
 
 		IVTV_DEBUG_OSD(IVTV_DEBUG_INFO,
-			       "Sched OSD dma: addr: 0x%08x, links 0x%08x, bytes 0x%08x, type 0x%08x\n",
-			       osd_stream->SG_handle, osd_stream->SG_length,
-			       size_in_bytes, 0x01);
+			       "Sched OSD dma: links 0x%08x, bytes 0x%08x, type %d\n",
+			       osd_stream->SG_length, size_in_bytes, 1);
 
 		if (dma_to_device(itv, osd_stream, osd_stream->SG_handle) != 0) {
 			IVTV_DEBUG(IVTV_DEBUG_ERR, "Error OSD BUFFER DMA\n");
diff -ur ivtv-0.3.2s/driver/ivtv-streams.c ivtv-0.3.2u/driver/ivtv-streams.c
--- ivtv-0.3.2s/driver/ivtv-streams.c	2005-04-05 19:15:52.000000000 +0200
+++ ivtv-0.3.2u/driver/ivtv-streams.c	2005-04-07 16:17:50.000000000 +0200
@@ -661,16 +661,16 @@
                 	data[0] = 0xBC05;
                 	data[1] = 1; /* Frames */
                 	data[2] = 1; /* Buffers */
-                	//data[3] = 0xFFFF0000;
-                	//data[4] = 0xFE010101;
+                	data[3] = 0x10108080;
+                	data[4] = 0x9DE7E7E7;
                 	data[5] = 2; /* Lines per frame */
                 	data[6] = 1456; /* One RAW line */
         	} else {
                 	data[0] = 0xBC06;
                 	data[1] = 1; /* Frames */
                 	data[2] = 1; /* Buffers */
-                	//data[3] = 0x250E6249;
-                	//data[4] = 0x13545454;
+                	data[3] = 0xABABECEC;
+                	data[4] = 0xB6F1F1F1;
                 	data[5] = 2; /* Lines per frame */
                 	data[6] = 64; /* Sliced Line */
         	}
Only in ivtv-0.3.2u/driver/: out
_______________________________________________
ivtv-devel mailing list
[email protected]
http://ivtvdriver.org/mailman/listinfo/ivtv-devel

Reply via email to