[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