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

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

 



(quoting fixed)

Bernd Porr wrote:
> Alan Stern wrote:
>> On Wed, 24 Jun 2015, Bernd Porr wrote:
>>> 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?
>>
>> 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.

And the xHCI specification requires this (section 6.2.3.6):
| For [isochronous] enpoint types, system software shall translate the
| bInterval field in the USB Endpoint Descriptor to the appropriate
| value for this field.

>> 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().
>
> I guess the cleanest solution is to write additional code in both the
> firmware and the driver for xhci and then once the older drivers change
> roll that over.
>
> The best approach is (I think but correct me) to ditch ISO for now just
> for xhci and then much later also for the other drivers.

Please note that you can implement Alan's suggestion in a mostly
backwards-compatible way by having the device offering multiple
alternate settings; an old driver (using EHCI) would still be able to
use a different interval with the 'wrong' alternate setting.


Regards,
Clemens
--
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