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