Re: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 2 comp_code 13

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

 




> On Nov 23, 2019, at 00:35, Mathias Nyman <mathias.nyman@xxxxxxxxxxxxxxx> wrote:
> 
> On 22.11.2019 17.10, Kai-Heng Feng wrote:
>>> On Nov 22, 2019, at 20:17, Mathias Nyman <mathias.nyman@xxxxxxxxxxxxxxx> wrote:
>> [snipped]
>>> 
>>> The event ring is already overwritten with new events when dumped.
>>> 
>>> Could you apply the code below, it will dump both the endpoint transfer ring
>>> and the event ring at the right moment:
>> The log is quite large so I pasted it here:
>> https://pastebin.ubuntu.com/p/wWpS8ctNrb/
>> Kai-Heng
> 
> Thanks, ring dumps shows xHC hardware never wrote an event to the event ring for the TRB at 0x487a0fe0.
> 
> Event ring:
> [   61.114263] xhci_hcd 0000:3f:00.0: 0x000000049803a5d0: TRB 0000000487a08fd0 status 'Short Packet' len 20416 slot 4 ep 3 type 'Transfer Event' flags e:c
>  we got a short packet event for TRB at 0x487a08fd0, which is one TRB before
> [   61.114269] xhci_hcd 0000:3f:00.0: 0x000000049803a5e0: TRB 0000000487a07a30 status 'Success' len 0 slot 4 ep 4 type 'Transfer Event' flags e:c
> [   61.114275] xhci_hcd 0000:3f:00.0: 0x000000049803a5f0: TRB 0000000487a07a40 status 'Success' len 0 slot 4 ep 4 type 'Transfer Event' flags e:c
> [   61.114281] xhci_hcd 0000:3f:00.0: 0x000000049803a600: TRB 0000000487a09000 status 'Short Packet' len 20416 slot 4 ep 3 type 'Transfer Event' flags e:c
>  we got a short packet event for TRB at 487a09000, which is one TRB after,
>  but no event for 0x487a0fe0
> 
> The TRB at 0x487a0fe0 in the endpoint ring looks fine:
> [   61.118683] xhci_hcd 0000:3f:00.0: 0x0000000487a08fc0: Buffer 000000046eef0000 length 32768 TD size 0 intr 0 type 'Normal' flags b:i:I:c:s:I:e:C
> [   61.118689] xhci_hcd 0000:3f:00.0: 0x0000000487a08fd0: Buffer 000000048e740000 length 32768 TD size 0 intr 0 type 'Normal' flags b:i:I:c:s:I:e:C
> [   61.118696] xhci_hcd 0000:3f:00.0: 0x0000000487a08fe0: Buffer 000000046ebe8000 length 32768 TD size 0 intr 0 type 'Normal' flags b:i:I:c:s:I:e:C
> [   61.118702] xhci_hcd 0000:3f:00.0: 0x0000000487a08ff0: LINK 0000000487a09000 intr 0 type 'Link' flags i:c:T:C
> 
> The TRB with missing event is similar to all the other Normal TRBs in the ring.
> It has both interrupt on completion, and interrupt on short packet bits set.
> Can't see any reason why an event wasn't generated.

Thanks for you analysis.
The driver for xHCI is a little bit overwhelming, so I didn't read the code through.

> 
> It seems it's always the TRB just before the LINK TRB that is missing an event.
> (address ends with 0xfe0).
> 
> Best guess is that this particular xHC (ASmedia) can't correctly generate events
> for the TRB right before Link  TRB

Is it possible to still use the TRB with missing event, based on this behavior?

Kai-Heng

> 
> -Mathias




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

  Powered by Linux