Re: urb->interval differently interpreted via xhci for 2.0

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 24 Jun 2015, Bernd Porr wrote:

> Hi all,
> 
> I'm the maintainter of the the USBDUX* devices.
> 
> They are USB 2.0 high speed devices. I use urb->interval to control the 
> sampling rate of these devices. That works fine with the ehci driver. 
> When I use the xhci driver it seems to be interpreting the urb->interval 
> in a different way and/or ignoring it? I need essentially intervals of 
> 1,2,4,8 microframes (125us, 250, 500, 1000us).

As you have seen from the source code, xhci-hcd ignores the 
urb->interval value provided by the driver and instead uses the value 
from the endpoint descriptor.

In the future, other host controller drivers may behave the same way.  
This is because the bus's periodic bandwidth needs to be allocated
beforehand, at the time the alternate setting is installed -- which is
before any URBs can be submitted.

Currently, I think the only way to do what you want is to set
ep->desc.bInterval to the desired value and then call 
usb_set_interface().

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux