Mailing List archive

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

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



From: "Michael Hunold" <hunold@convergence.de>
> 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.

Some issues seem more like a bug than "graceful recovery", particularly the
fact that the SAA7146A will sometimes not _finish_ DMA transfers. With
burst and FIFO threshold set to 4 Dwords, the chip _randomly_ does not DMA
the last 2-8 Dwords. I'd say the SAA7146A's PCI logic is simply bugged.

But, on a more helpful note: I found that it makes quite a difference what
WIDTH and HEIGHT you select for the BRS! Now the current code uses 4*188 as
width and 1024/4 as height, which does _NOT_ give the best results. In my
testing, I found that the most reliable configuration is:

TS_WIDTH  = 376 (2*188)
TS_HEIGHT = 512 (1024/2)

With this BRS configuration, the SAA7146A produces the least "DMA glitches"
on my machine, and even allows me to use a burst of 128 Dwords (with a
threshold of 32 Dwords), which was _not_ possible with
Width=188/Height=1024!

I suspect this configuration is working best, because it has no number
greater than 512 in it, and the BRS seems to have an issue with line or
pixel counts exceeding 511/512...

I'd suggest putting the "DMA verification" code in place first, though, and
_then_ starting to change the BRS configuration values to see if it indeed
improves the results.

Regards,
--
Robert Schlabbach
e-mail: robert_s@gmx.net
Berlin, Germany



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



Home | Main Index | Thread Index