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 [EMAIL PROTECTED] with "unsubscribe linux-dvb" as 
subject.



Reply via email to