-
Notifications
You must be signed in to change notification settings - Fork 5.3k
usb: xhci: add XHCI_VLI_HUB_TT_QUIRK #5262
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
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
The integrated USB2.0 hub in the VL805 chipset has a bug where it incorrectly determines the remaining available frame time before the host next sends a SOF packet with an incremented frame_number. See the USB2.0 specification sections 11.3 and 11.14.2.3. The hub's non-periodic TT handler can transmit the IN/OUT handshake token too late, so a following 64-byte DATA0/1 packet causes the ACK handshake to collide with the propagated SOF. This causes port babble. Avoid ringing doorbells for vulnerable endpoints during uFrame 7 if the TR is Idle to stop one source of babble. An IN transfer for a Running TR may happen at any time, so there's not much we can do about that. Ideally a hub firmware update to properly implement frame timeouts is needed, and to avoid spinning for up to 125us when submitting TDs to Idle rings. Signed-off-by: Jonathan Bell <[email protected]>
pelwell
reviewed
Dec 4, 2022
popcornmix
added a commit
to raspberrypi/rpi-firmware
that referenced
this pull request
Dec 6, 2022
kernel: media: i2c: ov7251: Add module param to select ext trig mode See: raspberrypi/linux#5260 kernel: usb: xhci: add XHCI_VLI_HUB_TT_QUIRK See: raspberrypi/linux#5262
popcornmix
added a commit
to raspberrypi/firmware
that referenced
this pull request
Dec 6, 2022
kernel: media: i2c: ov7251: Add module param to select ext trig mode See: raspberrypi/linux#5260 kernel: usb: xhci: add XHCI_VLI_HUB_TT_QUIRK See: raspberrypi/linux#5262
timg236
added a commit
to timg236/rpi-eeprom
that referenced
this pull request
Jan 5, 2023
* Update VL805 to 138C0 - fix for handling of split transactions raspberrypi/linux#5262 * Fix HID error handling with network install raspberrypi#458
XECDesign
pushed a commit
to XECDesign/rpi-eeprom
that referenced
this pull request
Jan 6, 2023
* Update VL805 to 138C0 - fix for handling of split transactions raspberrypi/linux#5262 * Fix HID error handling with network install raspberrypi#458
timg236
added a commit
to timg236/rpi-eeprom
that referenced
this pull request
Jan 13, 2023
This commit updates the VL805 firmware to vl805-000138c0.bin See raspberrypi/linux#5262
timg236
added a commit
to timg236/rpi-eeprom
that referenced
this pull request
Jan 18, 2023
Interesting changes since the last default release * Update VL805 to 138C0 - fix for handling of split transactions raspberrypi/linux#5262 * Fix HID error handling with network install raspberrypi#458
bmiddha
pushed a commit
to bmiddha/rpi-eeprom
that referenced
this pull request
Jan 28, 2023
This commit updates the VL805 firmware to vl805-000138c0.bin See raspberrypi/linux#5262
bmiddha
pushed a commit
to bmiddha/rpi-eeprom
that referenced
this pull request
Jan 28, 2023
Interesting changes since the last default release * Update VL805 to 138C0 - fix for handling of split transactions raspberrypi/linux#5262 * Fix HID error handling with network install raspberrypi#458
.. Would this quirk be applicable to other architectures too? |
The patch is architecture-agnostic. I have no reason to believe that the TT bug is fixed in any other version of non-Pi4 VL805 firmware. |
So would you consider this fit for mainline inclusion? What symptom does it fix? |
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.
This one's pretty horrible, but in the absence of a hub firmware update it'll have to do for now.
Spinning is unavoidable but not sufficient (the hardware can still cause babble by itself). There will be a maximum of 125us delay if submitting only one URB to the endpoint at once. Generally multiple URBs are pipelined to maintain throughput.