Skip to content
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

xhci: quirks: add link TRB quirk for VL805 #3929

Merged
merged 1 commit into from
Oct 26, 2020

Conversation

P33M
Copy link
Contributor

@P33M P33M commented Oct 26, 2020

The VL805 controller can't cope with the TR Dequeue Pointer for an endpoint
being set to a Link TRB. The hardware-maintained endpoint context ends up
stuck at the address of the Link TRB, leading to erroneous ring expansion
events whenever the enqueue pointer wraps to the dequeue position.

If the search for the end of the current TD and ring cycle state lands on
a Link TRB, move to the next segment.

See: #3919

Signed-off-by: Jonathan Bell jonathan@raspberrypi.com

The VL805 controller can't cope with the TR Dequeue Pointer for an endpoint
being set to a Link TRB. The hardware-maintained endpoint context ends up
stuck at the address of the Link TRB, leading to erroneous ring expansion
events whenever the enqueue pointer wraps to the dequeue position.

If the search for the end of the current TD and ring cycle state lands on
a Link TRB, move to the next segment.

See: raspberrypi#3919

Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
@pelwell
Copy link
Contributor

pelwell commented Oct 26, 2020

Is this the naive fix mentioned in #3919, and if so does it still break the bulk IN endpoint in some way?

@P33M
Copy link
Contributor Author

P33M commented Oct 26, 2020

It's now less naive - the issue with the hasty fix was that I didn't account for the case where the link trb also toggled the ring cycle state.

5k iterations of the test loop pass OK with this patch.

@pelwell pelwell merged commit 473bfd7 into raspberrypi:rpi-5.4.y Oct 26, 2020
@pelwell
Copy link
Contributor

pelwell commented Oct 26, 2020

Thanks.

popcornmix added a commit to raspberrypi/firmware that referenced this pull request Oct 26, 2020
See: raspberrypi/Raspberry-Pi-OS-64bit#4

kernel:  rpisense-fb: Set pseudo_pallete to prevent crash on fbcon takeover
See: raspberrypi/linux#3931

kernel: xhci: quirks: add link TRB quirk for VL805
See: raspberrypi/linux#3929

kernel: Allow the headphone output to be disabled
See: raspberrypi/linux#3928
popcornmix added a commit to Hexxeh/rpi-firmware that referenced this pull request Oct 26, 2020
See: raspberrypi/Raspberry-Pi-OS-64bit#4

kernel:  rpisense-fb: Set pseudo_pallete to prevent crash on fbcon takeover
See: raspberrypi/linux#3931

kernel: xhci: quirks: add link TRB quirk for VL805
See: raspberrypi/linux#3929

kernel: Allow the headphone output to be disabled
See: raspberrypi/linux#3928
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants