[pvrusb2] Audio/video sync (was re: Jumpy Video in Mythtv)

Mike Isely isely at isely.net
Sun Jul 22 23:09:49 CDT 2007


First, sorry it took until now for me to reply.  I've been away on a 3 
week vacation, having just returned this evening.  I'm working off a 
backlog of e-mail...

On Thu, 5 Jul 2007, roger wrote:

> On Wed, 2007-07-04 at 15:39 -0700, Mark Goldberg wrote:
> > On 6/30/07, Rod Smith <rodsmith at rodsbooks.com> wrote:
> > > FWIW, I've noticed audio/video sync problems, too, although they're not
> > 
> > After updating FC6 with the latest 2.6.20-1.2962.fc6 kernel and it's
> > v4l modules and ATRPMs, and compiling the pvrusb module from
> > pvrusb2-mci-20070428 and the firmware from pvrusb2_inf_24117.zip, then
> > shutting down the computer (turning it off so it reloads the
> > firmware), everything seems to work fine.

A modprobe -r pvrusb2 and then power cycling the PVR USB2 device should 
be enough to clear everything.  Note that rebooting the computer without 
power cycling the PVR USB2 device does NOT necessarily cause the 
device's FX2 firmware to be loaded.  When the pvrusb2 driver initializes 
a device, the first thing it does is to test for the need to load the 
FX2 firmware.  If needed, the FX2 firmware is sent to the device and it 
is reset - then the pvrusb2 driver "ignores" the device under the 
expectation that it will disconnect and reconnect.  Upon (re)connection, 
the pvrusb2 driver sees a new device, runs the same test which passes 
this time, and then the driver completes its initialization of the 
hardware.  This of course also means that if the device already passes 
its "test", then no firmware load is performed - thus rebooting the host 
does not imply a reload of the FX2 firmware.

Just to complicate things further, there's other firmware here as well 
which operates under different rules.  The CX23416 firmware is *always* 
loaded when the pvrusb2 driver initializes a device.  And if this is a 
24xxx model series device (if you don't know, it probably is), then the 
cx25840 chip-level driver will also load another firmware image to that 
chip upon initialization.

The best sure-fire way to completely reinitialize the device and to make 
sure that the driver is what you just built is this:

1. Disconnect the PVR USB2 device from its power.

2. modprobe -r pvrusb2.

3. Connect the PVR USB2 device to its power source.

Not that any of that matters in this case - you got things working and 
in the end that's all that really matters.


> > 
> > The v4l updated kernel modules from ATRPMs don't work, you get errors
> > about disagreeing symbol versions.
> 
> This sounds like a packaging issue. :-/

Errors involving disagreeing symbol versions AFAIK *always* are the 
result of attempting to load modules that were built from sources 
unrelated to the running kernel.  Unfortunately since I don't do RPMs 
here and have no idea how those "v4l updated kernel modules" are 
actually built / packaged, I can't really suggest a specific cause.  I'm 
always building everything kernel-related from sources here.


> 
> Maybe using an ancient pvrusb2 driver?   As we have been on 2.6.20 for >
> 6 mos now and just recently went to 2.6.21 in the last month.
> 
> So you're still using an *old* kernel in most people's view. :-)
> 

  -Mike


-- 
                        |         Mike Isely          |     PGP fingerprint
     Spammers Die!!     |                             | 03 54 43 4D 75 E5 CC 92
                        |   isely @ pobox (dot) com   | 71 16 01 E2 B5 F5 C1 E8
                        |                             |


More information about the pvrusb2 mailing list