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 _______________________________________________ pvrusb2 mailing list [email protected] http://www.isely.net/cgi-bin/mailman/listinfo/pvrusb2
