On Mon, 31 May 2004, Wolfgang M�es wrote:

> Hello,
> 
> I am trying to port the auerswald driver from 2.4 to 2.6. In 2.4, I have 
> used my own serialisation of control urbs. In 2.6, the documentation 
> says that all urbs are serialized in the core /hcd.
> 
> However, I have problems: from an INT IN completion handler, I submit 
> control urbs with usb_submit_urb. From user space, there are calls to 
> usb_control_msg. If the INT IN completion handler is comming while the 
> user space process is inside usb_control_msg, usb_control_msg will 
> return with -EPIPE. 
> 
> This is with Kernel 2.6.4 (the one shipped wth Suse 9.1).
> 
> Is this known behaviour? Where to go from here?

It sounds like you are concerned about serializing interrupt messages with 
control messages.  The core doesn't do that; only messages for the same 
endpoint are serialized with respect to each other.

In general, if usb_control_msg() returns -EPIPE it's because the device
responded to the control message with a STALL, not because of any internal
synchronization problem in the core or HCD.  If the device really does
have requirements for relative timing of interrupt and control messages,
then you will somehow have to synchronize your kernel driver with the user
process.

Alan Stern



-------------------------------------------------------
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to