In case you are wondering, I also tried the simpler case of just using just one of the fields, but that only worked 50% of the time.
Please try one of the two patches attached for the DVB & dvb-kernel drivers. These patches are against the CVS of a few days ago and _should not_ be applied on top of my previous patches.
Jon
diff -Nurw dvb-kernel-cvs/linux/drivers/media/dvb/ttpci/budget-core.c
dvb-kernel-field/linux/drivers/media/dvb/ttpci/budget-core.c
--- dvb-kernel-cvs/linux/drivers/media/dvb/ttpci/budget-core.c 2003-06-26
18:42:36.000000000 +0100
+++ dvb-kernel-field/linux/drivers/media/dvb/ttpci/budget-core.c 2003-09-01
20:34:37.000000000 +0100
@@ -46,12 +46,12 @@
mdelay(10);
saa7146_write(dev, BASE_ODD3, 0);
- saa7146_write(dev, BASE_EVEN3, TS_WIDTH*TS_HEIGHT/2);
+ saa7146_write(dev, BASE_EVEN3, 0);
saa7146_write(dev, PROT_ADDR3, TS_WIDTH*TS_HEIGHT);
saa7146_write(dev, BASE_PAGE3, budget->pt.dma |ME1|0x90);
saa7146_write(dev, PITCH3, TS_WIDTH);
- saa7146_write(dev, NUM_LINE_BYTE3, ((TS_HEIGHT/2)<<16)|TS_WIDTH);
+ saa7146_write(dev, NUM_LINE_BYTE3, (TS_HEIGHT<<16)|TS_WIDTH);
saa7146_write(dev, MC2, (MASK_04 | MASK_20));
saa7146_write(dev, MC1, (MASK_04 | MASK_20)); // DMA3 on
diff -urw cvs/DVB/driver/av7110/av7110.c DVB/driver/av7110/av7110.c
--- cvs/DVB/driver/av7110/av7110.c 2003-08-28 14:05:53.000000000 +0100
+++ DVB/driver/av7110/av7110.c 2003-09-01 21:17:47.000000000 +0100
@@ -748,12 +748,12 @@
mdelay(10);
saa7146_write(saa->mem, BASE_ODD3, 0);
- saa7146_write(saa->mem, BASE_EVEN3, TS_BUFLEN/2);
+ saa7146_write(saa->mem, BASE_EVEN3, 0);
saa7146_write(saa->mem, PROT_ADDR3, TS_BUFLEN);
saa7146_write(saa->mem, BASE_PAGE3, virt_to_bus(saa->page_table[0])|ME1|0x90);
saa7146_write(saa->mem, PITCH3, TS_WIDTH);
- saa7146_write(saa->mem, NUM_LINE_BYTE3, ((TS_HEIGHT/2)<<16)|TS_WIDTH);
+ saa7146_write(saa->mem, NUM_LINE_BYTE3, (TS_HEIGHT<<16)|TS_WIDTH);
saa7146_write(saa->mem, MC2, (MASK_04 | MASK_20));
// VPE
@@ -924,6 +924,8 @@
if (dmapos >= TS_BUFLEN)
return;
+ if (dmapos == av7110->ttbp)
+ return;
if (dmapos > av7110->ttbp) {
mem+=av7110->ttbp;
Only in DVB/driver/av7110: av7110.c.~1.61.~
