Hello,
On 26-May-01 Roman Weissgaerber wrote:
>> On 25-May-01 Norbert Preining wrote:
>> >> There is something else you can do: in pwc_isoc_handler, there is a
>> >> large
>> >> piece of code inside ?if (fst == 0) { ... }?, but there is no ?else?
>> >> branch.
>> >> Try and print this fst-status if its != 0, there maybe some corrupted
>> >> packets on the line.
>> >
>> > Here what I did:
>> > for (i = 0; i < urb->number_of_packets; i++) {
>> > fst = urb->iso_frame_desc[i].status;
>> > printk("DEBUG: fst=%d\n", fst);
>> > flen = urb->iso_frame_desc[i].actual_length;
>> > iso_buf = urb->transfer_buffer +
>> >urb->iso_frame_desc[i].offset;
>> > if (fst == 0) {
>> > printk("DEBUG: entering fst==0\n");
>> >...
>> > } else /* ..status == 0 */
>> > { /* fst status != 0 */
>> > printk("DEBUG: entering fst NOT= 0\n");
>> > printk("DEBUG: fst=%d, flen=%d\n", fst, flen);
>> > printk("DEBUG: urb->transfer_flags &
>> > USB_DISABLE_SPD
>> >=%d\n", urb->transfer_flags & USB_DISABLE_SPD ? 1 : 0);
>> > }
>> >
>> > And I get the following messages:
>> >
>> > Then there are a lot of line packets like this:
>> >
>> > A good one:
>> > May 25 16:26:44 mandala kernel: DEBUG: fst=0
>> > May 25 16:26:44 mandala kernel: DEBUG: entering fst==0
>> >
>> >
>> > And a bad one:
>> > May 25 16:26:44 mandala kernel: DEBUG: fst=-18
>> > May 25 16:26:44 mandala kernel: DEBUG: entering fst NOT= 0
>> > May 25 16:26:44 mandala kernel: DEBUG: fst=-18, flen=0
>> > May 25 16:26:44 mandala kernel: DEBUG: urb->transfer_flags &
>> > USB_DISABLE_SPD = 0
>>
>> [fst is the status of each and every transfered URB]
>>
>> > I always get fst = -18. Whatever this means.
>>
>> I don�t know either; the maintainer of the OHCI driver can hopefully tell
>> us exactly what this means.
>>
> -EXDEV (-18) means that the frame descriptor is empty
> (has not been processed).
That�s odd; do you know under which conditions this can happen?
> May be the URB never really come to the HCD?
Without an USB sniffer, we�ll probably never know.
> Does the completion handler reads only its own URB or also
> other URBs?
Only it�s own. It supplies two circular linked URBs at open(), and removes
them only when the device is closed.
> What does the webcam driver expect from the ->next pointer stuff?
Nothing; the isoc handler doesn�t use them. Since this is an ISOC transfer
I rely on the automatic re-submit procedure by the HCD.
> Do you use start frame numbers or ASAP flag in the URBs.
ASAP.
The whole code of the webcam driver can be found at my website in the patch;
however, since the driver works on a lot of machines, I don�t think the
problem is in my code itself, but rather a combination of the OHCI driver
and Preinig�s hardware,
-----------------------------------------------------------------------------
Try SorceryNet! One of the best IRC-networks around! irc.sorcery.net:9000
URL: never IRC: nemosoft IscaBBS (bbs.isca.uiowa.edu): Nemosoft
>> Never mind the daylight <<
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
http://lists.sourceforge.net/lists/listinfo/linux-usb-devel