[pvrusb2] Problem with wintv-hvr-1950

jim steele jsteele1997 at gmail.com
Wed Mar 11 19:58:05 CDT 2009


On Tue, Mar 10, 2009 at 9:25 PM, Mike Isely <isely at isely.net> wrote:
> Those numbers should be somewhat north of 256000 each time; the firmware
> loader must be having a serious problem reading the firmware image file.
> That size is not known ahead of time by the driver.  Rather, the pvrusb2
> driver is relying on the kernel's generic firmware loading mechanism
> (which cooperates with userspace) to retrieve the firmware file and load
> it into memory, whereupon the pvrusb2 driver spoonfeeds it into the
> encoder's memory.  The number to the left of the '/' is the number of
> bytes it sent to the encoder while the number to the right of the '/' is
> the file image size as reported by the kernel firmware loading module.
> The fact that they equal each other means that the pvrusb2 driver is
> doing its job - but it's clearly being handed garbage because the actual
> file size is WAY larger than these values (and in any case it should be
> consistent).
>
> There are other firmware images that the pvrusb2 driver loads, however
> they are all far smaller than the thresholds here.  For example the FX2
> firmware is only 8KB, and the cx25840 firmware is less than 16KB - so if
> your system is having trouble reading large files then those cases
> likely won't be affected.
>
> Obviously if less than 10% of the encoder's firmware code is actually
> getting loaded, then there's no way it's going to work.  You said it
> started working after 45 seconds.  That sounds to me like after dozens
> of attempts it somehow managed to read the entire firmware image.
>
> I think you need to look at your beagleboard setup and ask yourself if
> there's any way that file I/O on the system could be having problems.  I
> can see an NFS client mount with soft error behavior on a flakey network
> connection doing this - but beyond that nothing comes to mind that
> ultimately wouldn't relate to flakey disk hardware.

You are correct, the firmware file size is 376836 bytes. I've
discovered that success is also very sporadic on this, I can let it
sit for a half hour and not get anywhere, then try again later and it
works after a minute or so. I think it's pretty clear that this has to
do with something either on the beagleboard hardware or in the linux
kernel or software somewhere. I have tried running the root filesystem
from both an SD card and from the on-board NAND flash, but I get the
same results.

I don't seem to have any difficulties copying large (100+ MB) files to
USB flash drives from the beagleboard, so I don't know why it could be
having a problem with this 376K file. I think that there might be an
older version of your driver in the kernel also, but I don't know how
to go about updating it.

What do you think is the most likely cause of these difficulties?

Thanks for your help.


More information about the pvrusb2 mailing list