[pvrusb2] /dev/video0: Input/output error problem

Mike Isely isely at isely.net
Fri Jun 30 16:30:59 CDT 2006


On Fri, 30 Jun 2006, Wim Bakker wrote:

> On Thursday 29 June 2006 23:38, Mike Isely wrote:
>
>> There's also a module option "tolerance" that you can use to make the
>> driver more forgiving of USB errors.  Look at www.isely.net/pvrusb2 and
>> drill down to the usage page for more info on this (and a caution).  If
>> "tolerance" does help, I'd still like to see if we can figure out exactly
>> what is going on.
>
> Hai
>
> I put :
> options pvrusb2 tolerance=2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
> in my modprobe.conf , and as it looks like now , the I/O errors are
> gone , so this means a messy usb bus? I think it's the sata pci
> card I had to add to be able to use my sata drives, that shares
> interrupt with the usb bus. I will try to find a pata drive, and pull the
> card out and see if I/O errors than stay away without having to set
> the tolerance to 2.

First, save yourself some typing :-)  You should only need "tolerance=2". 
The extra values are applied when you have multiple devices, and they are 
used in order of unit assignment / appearance (so for one device only the 
first argument is needed).

Yes, this is strongly suggestive of USB problems for you.  However there 
is a caution here.  What "tolerance" is doing is pasting over the problem; 
the problem is still present and it will likely still bite you eventually. 
What tolerance does is to tell the driver ignore "N" (where "N" is the 
argument value for tolerance) number of consecutive USB packet errors for 
just the video streaming.  This means two things: (1) There will be a gap 
/ corruption in the video stream regardless because once the error happens 
data has already been lost, and (2) This does nothing to protect against 
errors during control transfers.  During streaming the vast majority of 
traffic over the cable is video data, but there are still control 
transactions taking place at a far lower rate.  Eventually your luck will 
run out and a control transfer will fail.  When that happens, 
synchronization with the device will be lost and the driver will give up 
on any further communication with the device - your only recovery then 
will be the replug the cable or in some extreme cases (depending on what 
state the device was in at the point of failure) power cycle the device.

So using "tolerance" will help you but it isn't a solution.  If anything, 
this is just telling you that you've got a problem affecting the integrity 
of the USB traffic in your system.

   -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