On Wed, 7 Jun 2006, usb usb wrote:

> Thanks - I will try that.
> 
> I have a fundamental question..
> How does the endpoint type influence the device
> behavior?

You've got it backward: The device's behavior dictates the type it will 
use for an endpoint.  For instance, if the device requires an endpoint to 
be polled reliably with a certain minimum frequency, it will choose to 
make the endpoint type be interrupt.  If the device requires rapid 
transfer of data with guaranteed bandwidth but without error detection and 
retries, it will choose to make the endpoint type be isochronous.

>  Isn't automatic scheduling (for intr URB)
> one of the main differences between the intr URB and
> Bulk URB?

Yes.  There are other differences too, mostly pretty small.  For example, 
interrupt URBs are allowed with low-speed devices but bulk URBs are not.

> If so, whatever the endpoint type is, the
> USB core must be able to handle it correctly (may not
> be efficiently) - right?

For unclear (probably historical) reasons, the USB core requires that each
URB specify a type, and things aren't guaranteed to work if this type
doesn't agree with the endpoint's type.  So yes, the core can handle all
the endpoints in your device correctly.  But if you submit an interrupt
URB for a bulk endpoint, you should expect to get an error.

Alan Stern



_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-users

Reply via email to