Opened 5 years ago

Last modified 3 years ago

#10915 closed bug

UHCI Short Packet Detect Not Enabled for Control Pipes — at Version 6

Reported by: akshay1994 Owned by: phoudoin
Priority: normal Milestone: R1
Component: Drivers/USB/UHCI Version: R1/Development
Keywords: USB UHCI Cc: akshay1994.leo@…
Blocked By: Blocking:
Has a Patch: yes Platform: All

Description (last modified by pulkomandy)

UHCI Short Packet Detect (SPD) is not enabled for Control Pipes. Since, while processing transfers in the Finish-Thread, we check for this, before checking for a short packet, short packet control transfers would hang indefinitely, always coming out as Active, although the Host Controller has retired them.

You can repeat this behaviour, by making a control transfer request, asking for any descriptor, with length set to a value greater than the length of the descriptor (atleast by 7 in my case, else the next TD is status stage, and it succeeds).

Change History (7)

comment:1 by akshay1994, 5 years ago

Has a Patch: set

comment:2 by akshay1994, 5 years ago

There is some problem with the patch. It stalls all further transfers. I'm looking into it. :)

comment:3 by pulkomandy, 5 years ago

Owner: changed from mmlr to phoudoin
Status: newassigned

comment:4 by korli, 5 years ago

Patch applied in hrev47551. Akshay, do you confirm any regression?

comment:5 by akshay1994, 5 years ago

This patch stalled all UHCI transfers, previously. I am updating my source tree. Will check and respond at the earliest :P

comment:6 by pulkomandy, 5 years ago

Description: modified (diff)

Well, I tested it before applying and my USB seems to still be working. I did more extensive tests with avrdude yesterday and it doesn't lockup like it did before anymore, however there are some other problems. Sometimes avrdude will fail to enumerate my programmer, and sometimes it will fail during programming, leaving the target chip in an unusable state with invalid fuse values, so things aren't perfect yet, but already better than without the patch.

Note: See TracTickets for help on using tickets.