Hamish Moffatt wrote: > On Sun, Sep 11, 2005 at 03:26:34PM -0400, Michael Krufky wrote: > >>Manu Abraham wrote: >> >>>Michael Krufky wrote: >>> >>>>>bt878(0): irq FDSR risc_pc=2c4bd008 >>>>>bt878(0): irq FDSR risc_pc=2c4bd008 >>>>>bt878(0): irq SCERR risc_pc=2c4bd000 >>>>>bt878(0): irq FDSR risc_pc=2c4bd008 >>>>>[...] >>>>>bt878(0): irq FDSR risc_pc=2c4bd008 >>>>>bt878(0): irq FDSR risc_pc=2c4bd008 >>>>>bt878(0): IRQ lockup, cleared int mask >>> >>>Looks like you had too many a IRQ's due to FDSR errors, why don't you >>>try ignoring the FBUS errors >> >>Manu- >> >>I applied both of the changes above and it fixes the problem. ie: > > > It prevents the lockup, but do you get data stream corruption when the > (now masked) interrupts occur? The buffers in the BT878 overflowed > causing the interrupt, and ignoring the interrupt won't prevent the > buffers from overflowing. > > (Potentially it might, actually. Logging the interrupts may be making > the PCI latency longer, especially if syslog is flushing each line to > disk rather than allowing the write-back cache to handle it.) > > IMHO the BT878 buffer is too small, as it's not designed for this > application. The CX2388x chips have much larger buffers. > > Hamish Doesn't seem to be any stream corruption. Here's the change that I settled on: diff -u -r1.49 -r1.50 --- dvb-kernel/linux/drivers/media/dvb/bt8xx/dvb-bt8xx.c 2005/09/10 07:26:02 1.49 +++ dvb-kernel/linux/drivers/media/dvb/bt8xx/dvb-bt8xx.c 2005/09/11 21:00:34 1.50 @@ -828,8 +828,8 @@ case BTTV_DVICO_FUSIONHDTV_5_LITE: #endif card->gpio_mode = 0x0400c060; - card->op_sync_orin = 0; - card->irq_err_ignore = 0; + card->op_sync_orin = BT878_RISC_SYNC_MASK; + card->irq_err_ignore = BT878_AFBUS | BT878_AFDSR; break; I don't think I'm ignoring too much here... -- Michael Krufky