Re: USB net device unexpectedly stops sending driver bulk in urbs

Alan Stern <[email protected]>
Newsgroups gmane.linux.usb.devel
Message-ID <[email protected]>
On Mon, 3 Dec 2007, Andrew Bird wrote:

> > What do you mean by "instantaneously"?  How do you know the data isn't
> > stuck in a network buffer rather than a USB buffer?
> 
> Well I think it is the USB device, because if I lower the size of the receive 
> URB to less than the packet size, the device stops sending URBs mid packet.

This statement is confusing.  For one thing, devices don't send URBs -- 
they send packets.  (Drivers don't send URBs either; they submit them.)  
For another, what does it mean to stop sending packets in mid packet?

Bear in mind that if your driver submits receive URBs with a smaller
transfer length than the device expects, then your driver is ipso facto
at fault.  Any further errors you observe can't be blamed on the
device.

> My thought ATM is that it's the device that is at fault. Assuming it is for 
> the moment, and knowing that sending data along the bulk-out path stimulates 
> the receive path again, what would be a valid thing to send? Ideally I want 
> something that terminates on the USB device, and doesn't get pushed out to 
> the network. 

It's impossible to answer this question without knowing what data the 
device expects to receive on its bulk-out endpoint.

> Well I have tested variants of the driver on two platforms and see the fault 
> on both. Currently I'm trying to make it work on a Broadcom embedded MIPSel 
> device with 2.4.20 kernel. Previously I saw it on x86 with 2.6.22 kernel.
> The device is an Option UMTS card. It is a PCI expressCard that comes with a 
> cardbus caddy containing an ohci usb controller. The device is not one of the 
> usual usbserial type cards, but one that does PPP on the card itself, and 
> ships IP packets out to the host. The 2.6 driver is available from 
> http://www.pharscape.org/component/option,com_forum/Itemid,68/page,viewtopic/t,350/

If you're trying to debug a difficult problem, you should make the rest 
of your environment as trouble-free as possible.  That means using a 
standard host architecture (like x86) with a standard USB host 
controller (not something built into a cardbus caddy), and using the 
most recent and most bug-free kernel you can find (like 2.6.23.x).

Alan Stern


-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell.  From the desktop to the data center, Linux is going
mainstream.  Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.