On Sat, 10 Mar 2007, Alan Stern wrote:

> On Sun, 11 Mar 2007, Martin Drab wrote:
> 
> > how independent are different endpoints of the same alternate interface? 
> 
> They are completely independent.  In theory anyway; individual devices may 
> have specific restrictions.

OK, good to know that at least on the Linux side this should be supported. 
I read some comments on the net (probably describing some ancient version 
of kernel or what), where there were some hints like that it may not be 
supported. So I wasn't sure whether recent kernels are capable of it. Good 
to know they are.

As of the device, it uses the Philips (NXP) ISP1581 USB device controller. 
In the chips manual there is nothing about not supporting such a mode 
(though also nothing explicitly about supporting it). And I am also 
writing the firmware for it. As far as I can tell, the firmware 
should be constructed in a way that should be able to handle it (anyway it 
does for the isochronous transfers, and there are not very big differences 
for setting up isochronous and bulk mode, the data communication is then 
handled automatically by the chip).

But OK, good to know that I should seek for a bug either in the driver or 
in the firmware.

> > Is it possible eg. to schedule multiple URBs to a bulk IN endpoint (say 
> > EP3IN) and simultaneously schedule a control URB to the setup OUT endpoint 
> > (say 
> > EP0OUT) and expect, that the control URB would succeed immediatelly even 
> > if all the scheduled bulk URBs haven't been serviced yet?
> 
> Well, you certainly can submit all those URBs.  There would be no
> guarantee about what order they would complete in, or how quickly.

As long as they would not depend on one another by the order of their 
submission, that should theoretically be OK with me.

> And some devices are definitely known to crash if you send them a 
> control URB while they are busy doing something else.

Hmm, is it just due to the bug in their firmware or is the problem rather 
in their USB chip hardware?

...
> > The thing is I'd like to stream data from a device with a bulk transfer, 
> > while still being able to send control commands (e.g. for requesting 
> > current status of the device or changing some of its internal settings)
> > during the bulk transfers.
> > 
> > I always get stuck when trying this. Multiple bulk URBs submission seems 
> > to work on its own, but when I then issue the first control urb, all 
> > transmissions seem to freeze halfway.

After it gets stuck, when I switch off the device, all the scheduled URBs 
return with -EPROTO error.

...
> It's supposed to work.  The fact that it doesn't could be due to a bug in
> your driver or a bug in the device.

OK, good to know.

> Try using usbmon (see Documentation/usb/usbmon.txt) to find out what data 
> is actually being transferred.  That at least should tell you if your 
> driver is behaving as intended.

I will, thanks a lot for the comments.

Martin

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to