[pvrusb2] cx25840 video scaler is broken [was: Poor analog picture on HVR-1950 after upgrade...]
Mike Isely
isely at isely.net
Sun Jun 14 00:30:53 CDT 2009
Problem found...
The VBI hack wasn't working for 24xxx in v4l-dvb w/ sub-device binding
because I was calling it too soon. The driver was setting up the VBI
hack, THEN loading the cx25840 firmware and initializing the device
which of course is all backwards. I've just tested a minor change to
fix this ordering and sure enough 640 is working correctly again.
Knowing that, I had an idea about the HVR-1950 scaling problem... It's
a different but similar problem. In that case the pvrusb2 driver is
issuing a reset to the cx25840 driver whenever it switches the hardware
to analog mode. I strongly suspect that this reset action is going to
erase chip state, including whatever the VBI hack did. And even if you
don't run the device in digital mode this still happens - because the
pvrusb2 driver will infer a switch to digital mode at device
initialization in order that the DVB interface can initialize. Thus the
cx25840 hardware is NEVER correct there. This is only a theory; I
haven't tested a fix here yet (which would be to ensure the chip is
correctly reinitialized after a reset). But I'm 90% sure that this will
fix analog mode when scaling is active in the cx25840 for HVR-1950
hardware.
Actually, looking at the VBI setup within the cx25840 driver code, it
looks like I really should be re-issuing it any time the video standard
changes. In fact I think it's still being run too soon because the
driver is being told the video standard *after* this hack is done. So I
need to take a step back and examine this situation a little more
carefully. But it's just a matter of time - I'm pretty sure I've got
this problem under control now.
Whee!!!
-Mike
--
Mike Isely
isely @ isely (dot) net
PGP: 03 54 43 4D 75 E5 CC 92 71 16 01 E2 B5 F5 C1 E8
More information about the pvrusb2
mailing list