Mailing List archive

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

[linux-dvb] Re: Network: a new hope



Hello Robert, Emard,

Sorry, I haven't followed this issue right from the start: Does it occur
_only_ on budget class cards with the SAA7146A on it?
Only on Budget cards.

Because I recently
investigated budget DMA issues with the SAA7146A and found that it tends to
not properly fulfill DMA requests - depending on configuration, it can
randomly not transfer Dwords within the data stream (but will advance the
pointer).

The resulting stream can actually look perfectly ok according to the MPEG-2
headers (no continuity count errors), but the actual packet contents will
be corrupted.
Yes, as you probably know this is called "graceful recovery" and makes perfect sense for video data: if the data cannot be delivered (for example because the PCI bus is hogged by something else and the FIFOs overflow) then the saa7146 throws away the data and advances the pointer until the bus becomes free again.

This happens for the other DMAs on the saa7146 (especially the HPS), too.

Of course this is bad for non-video data, but the saa7146's BRS wasn't designed to transport real data anyway...

If this is indeed an SAA7146A/budet issue and you're willing to invest some
time into this, you should start by modifying the budget DMA code so that
it pre-initializes each buffer before it is DMA'd to with a certain DWORD
pattern, and after the DMA checks whether the pattern is still found
anywhere in the buffer (of course, any pattern can always appear in the
real data, but a wisely chosen pattern would only show up once in a blue
moon, and you can tell by the frequency whether it is real data or DMA
corruption)..
Good idea. This will show if the system suffers from PCI hogging issues or not.

Regards,
CU
Michael.



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



Home | Main Index | Thread Index