USB: UHCI: Don't test the Short Packet Detect bit
authorAlan Stern <stern@rowland.harvard.edu>
Mon, 31 Jul 2006 14:16:24 +0000 (10:16 -0400)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 2 Aug 2006 23:41:42 +0000 (16:41 -0700)
Apparently some UHCI controllers change the value of the Short Packet
Detect (SPD) bit in the TD status word -- presumably when they receive a
short packet.  This patch (as759) changes uhci-hcd to avoid assuming
that the bit is unchanged; in fact, the driver no longer looks at SPD at
all.

This fixes the second problem reported in Bugzilla #6752.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/host/uhci-q.c

index c9d72ac0a1d775872ed78ed733980e40244749a0..66c3f61bc9d1332da61027fd5b2a005c7af941f1 100644 (file)
@@ -943,7 +943,9 @@ static int uhci_result_common(struct uhci_hcd *uhci, struct urb *urb)
                        /* We received a short packet */
                        if (urb->transfer_flags & URB_SHORT_NOT_OK)
                                ret = -EREMOTEIO;
-                       else if (ctrlstat & TD_CTRL_SPD)
+
+                       /* Fixup needed only if this isn't the URB's last TD */
+                       else if (&td->list != urbp->td_list.prev)
                                ret = 1;
                }