(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