Messages in this thread Patch in this message | | | Date | Sat, 18 Jan 2014 12:23:27 -0800 | From | walt <> | Subject | Re: [PATCH 3.12 033/118] usb: xhci: Link TRB must not occur within a USB payload burst [NEW HARDWARE] |
| |
On 01/17/2014 06:34 AM, David Laight wrote:
> Can you try the patch I posted that stops the ownership on LINK TRBs > being changed before that on the linked-to TRB?
Please disregard my earlier post about the patch not applying cleanly. That was the usual html corruption, so I found the original on the usb list and it was okay.
Sadly, the patch didn't fix the ASMedia lockup behavior, however :(
I did notice that the lockup occurred only when copying *to* the usb3 drive, and not when copying from it. I think that may be new behavior but I can't swear to it.
Just to confirm, here are the first few lines of the patch I used. Please let me know if it's the wrong patch:
diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c index 53c2e29..589d336 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c @@ -2928,6 +2928,11 @@ static void queue_trb(struct xhci_hcd *xhci, struct xhci_ring *ring, struct xhci_generic_trb *trb; trb = &ring->enqueue->generic; + + field4 = (field4 & ~TRB_CYCLE) | ring->cycle_state; + if (trb == &ring->enqueue_first->generic) + field4 ^= TRB_CYCLE; + trb->field[0] = cpu_to_le32(field1);
<big snip>
| |