Opened 5 years ago

Closed 3 years ago

#10915 closed bug (fixed)

UHCI Short Packet Detect Not Enabled for Control Pipes

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 waddlesplash)

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).

Attachments (1)

0001-Fix-UHCI-Short-Packet-Transfers.patch (898 bytes ) - added by akshay1994 5 years ago.

Download all attachments as: .zip

Change History (11)

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.

comment:7 by akshay1994, 5 years ago

Can you provide the logs for the case when it failed? Did libusb give any warning or error?

comment:8 by waddlesplash, 5 years ago

Component: Drivers/USBDrivers/USB/UHCI

Filtering UHCI tickets from Drivers/USB to Drivers/USB/UHCI.

comment:9 by waddlesplash, 3 years ago

Description: modified (diff)

The patch in this ticket was applied. Can it be closed, then?

comment:10 by pulkomandy, 3 years ago

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.