[haiku-bugs] Re: [Haiku] #10915: UHCI Short Packet Detect Not Enabled for Control Pipes

  • From: "pulkomandy" <trac@xxxxxxxxxxxx>
  • Date: Thu, 24 Jul 2014 06:01:11 -0000

#10915: UHCI Short Packet Detect Not Enabled for Control Pipes
---------------------------+----------------------------
   Reporter:  akshay1994   |      Owner:  phoudoin
       Type:  bug          |     Status:  assigned
   Priority:  normal       |  Milestone:  R1
  Component:  Drivers/USB  |    Version:  R1/Development
 Resolution:               |   Keywords:  USB UHCI
 Blocked By:               |   Blocking:
Has a Patch:  1            |   Platform:  All
---------------------------+----------------------------

Old description:

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

New description:

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

--

Comment (by pulkomandy):

 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.

--
Ticket URL: <https://dev.haiku-os.org/ticket/10915#comment:6>
Haiku <https://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: