Re: EP-0 returns timeout even when data is received by the device.

Alan Stern <[email protected]>
Newsgroups gmane.linux.usb.devel
Message-ID <[email protected]>
On Sat, 12 May 2007, Jayaprakash Shanmugam wrote:

> Hi All,
> 
>   I have a EHCI host connected to 4 USB devices (dev1, dev2, dev3 and
> dev4).  I have two processes that make use of these devices through a
> kernel object.  I have some vendor commands (through EP-0) to all the
> devices.  Apart from this,  dev1 has EP2 ( in ) bulk, dev2 has EP2 (
> in ) interrupt and dev4 has EP6 ( out ) bulk.  There are 3 processes
> in our system.  From Process1, I read EP2 from dev1 periodically (for
> every 30 ms) and send it to EP6 of dev4.   The other process Process2,
> reads the EP2 interrupt endpoint of dev2 periodically. The last
> process Process3, tries to write to dev4 EP-0 quite frequently (every
> 3 seconds).  Sometimes, the usb_control_msg() receives timeout error.
> I am not able to understand why it should return timeout error
> intermittently.
> 
> 1) When the control endpoint and bulk endpoint are used in a device,
> Can I not use both of them simultaneously ?

The Linux host software allows it.  However the device itself might have
some restrictions (although it shouldn't).

> 2) When I tried to write to EP-0 of a device, the other process who
> sends periodic data to EP-2 of the same device

How can that be?  You said above that on both dev1 and dev2, ep2 is in, 
not out.

>  receives the error
> message - ep0out timeout error.  Why should the process receive this
> debug message (from the timeout handler in the usb_submit_urb() )

Most likely you misunderstood what happened.  Please provide logs
demonstrating the problem.

> 3) When I tried to write to EP-0 of a device (while the other process
> sending data to EP-2 of the same device periodically), the device
> received the data succesfully.  But, the host says the request is
> timeout.  Does it mean that the ACK for the EP-0 packet is received by
> the URB who waits for ACK for the Bulk transfer.

ep0 transfers involve several packets, so it doesn't make sense to talk 
about "the ACK for the EP-0 packet".  If the device receives the data 
correctly and the host reports a timeout, it means that the device 
continues to send NAK packets even after it has received the data.

> This mail may be huge.  Since I am not able to understand the behavior
> I wanted to give the full details of the issue.
> 
> Note: I am running Linux 2.6 on MPC 8270 with Philips PCI - USB converter

2.6.what?

Alan Stern


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
[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.