On Mon, 03 Oct 2016 17:04:23 +0200, Pierre-Louis Bossart wrote:
For playback usages, the endpoints are started before the prepare step, and valid audio data will be rendered with a delay that cannot be recovered. Worst-case the initial delay due to buffering of empty URBS can be up to 12ms
This is really a fix unlike other patches in the series. Please split it from others, so that we can apply it easily.
There was also additional discussions on this topic since I put this together, not sure it makes sense to merge this patch at the moment. In the Windows driver, the URBs can be submitted at a specific time, which allows for synchronous starts of all endpoints (limited to the 1ms frame resolution). In Linux we can't since the start time is owned by the xhci driver and can't be modified by the class driver. I talked with Mathias Nyman and Baolu Lu on this before the summer and of course I became busy with other things. The short story is that there is a wider problem with USB start and linking endpoints that should be addressed as a single step. Maybe something to talk about at the miniconference?
Sure, why not. Now it's close to LPC and we won't reach to the solution soonish yet.
Takashi