On 24.03.2018 06:37, Cyril Roelandt wrote:
Hello,
On 03/07/18 17:16, Mathias Nyman wrote:
I can try to write a workaround that sets dequeue pointers for both the stream we want, and
the current active stream for each URB canceling.
Is there a branch from which I could pull the workaround and test it?
I noticed some other issues while working on it. Streams set deq required a bit rework.
A branch with just streams deq rework can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/mnyman/xhci.git stream_set_tr_dq
If we're lucky that is enough, but your logs indicate that there might be something else.
If the rework alone doesn't work, then I have a simple fix on top of it.
It assumes streams aren't switched mid TD, i.e. that a non-active stream ring is not
left mid TD and controller doen't have cached TRBs for non-active streams.
This is pretty similar to how 4.12 kernel was handling it.
I haven't got confirmation from HW/xhci spec side if we can make this assumption.
Anyways, branch for this can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/mnyman/xhci.git stream_set_tr_dq_test1
If that still doesn't work, then a workaround that sets deq pointes for both the stream we want,
and the current active stream could be an option. I haven't written that yet.
Thanks
Mathias
--
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