[mythtv] pvr-350 decode stops working

Daniel Staaf dst at bostream.nu
Sat Dec 23 15:55:59 UTC 2006


ryan patterson wrote:
> Dec 22 21:34:00 mythtv kernel: ivtv0-osd warning: DMA xfer from 
> b7b0d808 of 65536 bytes failed with (-5) offset = 0x141800, total 
> 1382400
> 
> Is DMA the root cause of this failure? If so what particular setting
> could be causing DMA to act up?  The hardware use to be rock solid
> for three months with no reboot.

The root cause seems to be a design glitch in the DMA engine of the
CX23415 chip (the MPEG2 encoder/decoder chip on the PVR-350 with an
embedded Java interpreter), thus making it very hard to write a driver
that can keep the PVR-350 functioning correctly for a long time with the
less than perfect hardware found on consumer quality motherboards. The
firmware (the Java byte-code) is probably buggy too.

The good news is that Hans Verkuil seems to be on top of things and
hopefully the driver will be as stable as it can be when it is
completely merged with upstream v4l sometime next year. He's not there
yet though and I'm a bit worried about what he writes in
http://www.gossamer-threads.com/lists/ivtv/devel/33614. Apparently the
PVR-500 uses a PCI-bridge to isolate the cx23416 chips from any signal
interference on the main PCI bus. That could mean that even Hauppauge's
engineers with full access to the hardware specs (but maybe not the
source code to the chip firmware) had so much trouble with writing a
stable (Windows) driver that they chose to implement a hardware
workaround for the newer cards.

If you are running any kind of CPU frequency scaling, try turning it off
as such power saving features may increase the stress on your
motherboard capacitors and if they are of low quality the interference
on the PCI bus may increase, leading to more DMA errors (some of which
the PVR-350 obviously can not handle correctly). Maybe the newer Linux
kernels enables more power saving features on your motherboard (like
letting some board components sleep when not in use) or perhaps the
"cleanups" of the different kernel subsystems has changed the timing of
events enough to cause the PVR-350 to lock up.

Other things to check is that you have sufficient cooling (the PVR-350
draws a lot of power, overheating is often first noticed as audio
glitches in recordings) and a stable power supply (Morex is crap, I have
a DC-DC converter that I had to replace four capacitors on since they
started leaking after two years (green, noname ones from Taiwan with the
electrolyte probably made according to that stolen Japanese recipe that
turned out to be incomplete).

/ Daniel


More information about the mythtv-dev mailing list