Repository navigation
xhci: drop the VL805 XHCI_EP_CTX_BROKEN_DCS cycle-state quirk - #7754
Draft
popcornmix wants to merge 1 commit into
Draft
popcornmix wants to merge 1 commit into
popcornmix wants to merge 1 commit into
Conversation
Upstream commit 6328bdc ("usb: xhci: Don't trust the EP Context cycle bit when moving HW dequeue") fixed the VL805 DCS write-back problem by seeding new_cycle from td->end_trb and counting link TRB toggles only after end_trb. The downstream quirk still seeds new_cycle from the TRB at the hardware dequeue pointer, which can be before a cycle-toggling link TRB inside the cancelled TD. That toggle is then never counted, Set TR Dequeue is given the previous lap's cycle bit, and the endpoint stalls until a USB reset. Remove the quirk; upstream's handling covers the VL805. Link: raspberrypi#7737 Signed-off-by: Dom Cobley <dom@raspberrypi.com>
Collaborator
Author
|
@P33M can you check |
Contributor
|
I think the change is correct. Upstream fixed it a different way, now the downstream patch is unneccessary. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #7737.
Upstream 6328bdc ("usb: xhci: Don't trust the EP Context cycle bit when moving HW dequeue") already handles the VL805 not updating the endpoint DCS. The older downstream quirk still seeds the cycle state from the TRB at the hardware dequeue pointer. When a cancelled TD spans the cycle-toggling link TRB, that toggle is never counted. Set TR Dequeue then gets the wrong cycle bit and the endpoint stalls until a USB reset.
This removes the quirk, which matches rpi-7.3.y: that branch no longer sets
XHCI_EP_CTX_BROKEN_DCSfor the VL805.Tested on a Pi 4 with a USB SD card reader, using the reproducer script from #7737: