[pvrusb2] 29xxx pvrusb2 device initialization problems

Mike Isely isely at isely.net
Sun Feb 7 00:36:32 CST 2010

On Fri, 5 Feb 2010, Mike Isely wrote:

> After further testing, I've gotten more clues.  This is a very bizarre 
> problem, limited to only 29xxx devices.
> I'm convinced now that there is nothing wrong with the pvrusb2 driver.  
> As for the root cause, I'm still not entirely sure.  This is going to be 
> hard to explain, but I'm going to lay out as much detail as I can here 
> in the hopes that in the future when someone google-searches for this, 
> the information might be helpful.  So this message is going to be rather 
> lengthy....
> First, the background info:

   [See previous post...]

Here's some more symptoms, unfortunately not very helpful.  But I'm 
describing it here for the record...

I swapped in a fresh hard drive on the problematic laptop system and 
scratch installed Debian Stable to it.  Using the stock Debian supplied 
kernel (Debian-compiled 2.6.26 variant) I tried to initialize a 29032 
device.  Result?  Failure.  The device did in fact disconnect after the 
stage 1 FX2 firmware download step, but on reconnect I got the same USB 
errors followed a little while later by a downshift to full speed mode 
and initialization completed.

I tried a bunch of different kernels using this fresh Debian Stable 
installation.  Heck it's a fresh install with plenty of free disk space, 
so I'll just pile on the kernels...  These are all kernels that I've 
built in the past, many of which I've used as a basis for driver testing 
over time.  Generally every time I move up to a later kernel, I start by 
copying the previous kernel's .config to the new kernel tree and then 
running "make oldconfig" to catch any new config switches.  So generally 
the .config, though not the same each time, advances logically and 
settings tend to stay the same between kernels provided that the config 
switch itself stays around.  In all cases, I'm running the stock pvrusb2 
driver included with each kernel.  Here's the results:  - FAIL - SUCCESS - SUCCESS  - SUCCESS  - FAIL  - FAIL, won't auto-disconnect either  - FAIL, won't auto-disconnect either

OK, so now I know I'm not crazy.  I had previously been running 
on that laptop for a while and had only recently updated to 
there, which is obviously why now I remember there not being any earlier 

But remember that I'm also running that same kernel on my 
desktop system and THERE the 29032 device initializes perfectly.  
Perhaps the USB hardware is different on the two?  Well, apparently not, 
according to lspci.  One both machines this is what lspci says about the 
USB host controllers.  It's identical in both places:

00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 (rev 01)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 (rev 01)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 (rev 01)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 (rev 01)
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 01)

What a tangled set of conditions.  So, it would seem that if I'm 
specifically running on a Dell Inspiron E1705, using a specific kernel 
version, then the older PVR-USB2 29xxx series devices won't initialize 
correctly.  Yet the 24xxx series still works fine.  Yet if I jam a 
24xxx-specific FX2 firmware image onto a 29xxx device then the 29xxx 
device at least communicates correctly again.  Yet if I do any of this 
on my desktop system - using an identical known "bad" kernel for the 
E1705, in spite of the fact that the desktop system uses the exact same 
USB host controller - then everything works fine.  Wow.  This has just 
GOT to be some kind of bizarre race.

I suppose I should start comparing .config files between the kernel 
versions but I'm just blown away that the same stuff works fine on the 
desktop system.

I think it's time to go to bed.  My head hurts.



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