Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] Re: Triple packet problem



we've had a similar problem and found that decreasing the DEBI DMA burst length in the arbitration control register fixed this and other corruption in systems using i845 (usually P4) architectures.

kudos to (and patch from) Neil Terry and Matt Davis.

:{)}

diff -rpu ../DVB/driver/av7110/av7110.c DVB/driver/av7110/av7110.c
--- ../DVB/driver/av7110/av7110.c 2003-05-12 10:09:59.000000000 -0600
+++ DVB/driver/av7110/av7110.c 2003-05-30 10:54:37.000000000 -0600
@@ -731,7 +731,7 @@ TTBStart(av7110_t *av7110)

memset(saa->grabbing, 0x00, TS_BUFLEN);

- saa7146_write(saa->mem, PCI_BT_V1, 0x001c0000);
+ saa7146_write(saa->mem, PCI_BT_V1, 0x00070000);

av7110->ttbp=0;
saa7146_write(saa->mem, DD1_INIT, 0x02000600);
@@ -5050,8 +5050,13 @@ void av7110_irq(struct saa7146 *saa, u32
if (isr & MASK_03)
tasklet_schedule (&av7110->gpio_tasklet);

- if (isr & MASK_10)
+ if (isr & MASK_10) {
+ if(saa7146_read(av7110->saa->mem, 0x114) & MASK_13) {
+ printk(KERN_INFO "av7110: fifo overflow\n");
+ saa7146_write(av7110->saa->mem, ISR, MASK_09); //clear overflow
+ }
tasklet_schedule (&av7110->vpe_tasklet);
+ }

if (isr & MASK_07)
tasklet_schedule (&av7110->fidb_tasklet);



--
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index