Hi All, As a result of all my streams work, I've started to wonder if it would not be better to leave bulk endpoints with streams disabled until streams are allocated. It seems to me that allowing to submit non stream bulk transfers on stream eps is not useful, and could even be harmful if it causes the hardware to act up. I've also come up with a plan for implementing this, but before spending time on this, I would like to get some feedback on it. The plan is: 1) Alloc / free streams is part of setting up an interface, normally a driver would only call set_interface for this, but with streams a second call is necessary to let the hcd know how much streams the driver plans to use. Only one set_interface can run at a time due to the hcd->bandwidth_mutex lock, the xhci driver uses this to protect dev->in_ctx. Make usb_alloc_streams and usb_free_streams also take hcd->bandwidth_mutex, so that they cannot run at the same time as a set_interface and use dev->in_ctx 2) Change xhci_endpoint_init to take a streams argument. If this is non 0, no regular ring will be allocated, instead xhci_alloc_streaminfo will be called. 3.1) modify xhci_add_endpoint to be a nop for eps with streams, thus leaving them disabled 3.2) Make xhci_alloc_streams use dev->in_ctx, call xhci_endpoint_init for the eps on which streams are to be enabled, then do a xhci_configure_endpoint 3.3) Make xhci_free_streams use dev->in_ctx, make it drop all endpoints rather then reconfigure them, thus moving the endpoints to disabled. 4) Drop the no longer needed free_streams_command from stream_info So good idea or bad idea ? Regards, Hans -- 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