Mailing List archive

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

[linux-dvb] Dma problem? was Re: Re: can't record some channels withvdr and a nova-s budget card.



Claas Hilbrecht wrote:
By "DMA problem" I meant "problem with the DMA related driver routines".
Jon Burgess fixed those about a month ago, but maybe some corner case
is still buggy?
While working on the twinhan driver I think I spoted what may be a big bug in the bt878 audio side dma routines..

when the irq is handled, the current finished frame is passed to the dma task via the status bits in the interrupt register. In my case, the card sets up for 64 frames of 2048 bytes. There are only 4 status bits in the interrupt register, therefore card->bt->finished block can never exceed 16.
If in the case of a slow machine you accumulate a number of interrupts before the dma task is scheduled. I guess it may be possible to get a mismatch.

For example if card->bt->last block == 14 and
card->bt->finished block is supposed to be 20, it is really going to be 4.
So the loop is going to dump the entire dma buffer from block 15 right around to block 4. duplicating heaps of old data..

Someone more conversant with the dma code in bt878.c and dvb-bt8xx.c please slap me with a clue stick and tell me I'm wrong.

Brad



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



Home | Main Index | Thread Index