Skip to content

dwc_otg: make nak_holdoff work as intended with empty queues #1978

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 1 commit into from
Apr 28, 2017

Conversation

P33M
Copy link
Contributor

@P33M P33M commented Apr 27, 2017

See #1709. This fixes the lengthy timeout issues seen with the provided test program pair.

The issue with data not being returned immediately after opening a port isn't an issue with dwc_otg: I see usb-serial correctly receiving the data from the HCD therefore the problem is further up the stack.
cc @carmarri

If URBs reading from non-periodic split endpoints were dequeued and
the last transfer from the endpoint was a NAK handshake, the resulting
qh->nak_frame value was stale which would result in unnecessarily long
polling intervals for the first subsequent transfer with a fresh URB.

Fixup qh->nak_frame in dwc_otg_hcd_urb_dequeue and also guard against
a case where a single URB is submitted to the endpoint, a NAK was
received on the transfer immediately prior to receiving data and the
device subsequently resubmits another URB past the qh->nak_frame interval.

Fixes raspberrypi#1709
@popcornmix popcornmix merged commit 5ca413b into raspberrypi:rpi-4.9.y Apr 28, 2017
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.

2 participants