Re: xHCI host controller failure during DMA transfers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 12/30/2011 11:10 PM, Bora Sahin wrote:
> 
>>> xhci_hcd 0000:00:00.0: `MEM_WRITE_DWORD(3'b000, 32'h79003004, 32'h4, 4'hf);
>>> xhci_hcd 0000:00:00.0: Cancel URB 834086c0
>>>
>>
>> Here xhci_urb_dequeue() is called, means usb core wants to unlink or
>> kill a URB. Seems the driver does not handle that correctly. To dequeue
>> a URB, xHCI driver needs to do many things, including adding the
>> unfinished TDs to a list, issue a stop endpoint command, giveback the
>> URB when the command is executed successfully, and ring the doorbell to
>> continue transfer or issue a set TRDP command if necessary. It's a
>> complex process. Perhaps you can ask Fresco to check that part.
> 
> I see. Why might USB core want to kill or unlink the URB? How can I trace it?
> 

It's a cancellation mechanism. Quite normal, though not as frequently as
normal completion occurs.

You can check the command ring and event ring after the cancellation
happens. See if there is stop endpoint command/Set TRDP command issued
on command ring, and if there is corresponding successful event on the
event ring. Suppose if everything is OK, the transfer should continue
after that.

Thanks,
Andiry

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux