Re: xHCI reports “ERROR Unknown event condition 20, HC probably busted”

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

 



On 20.09.2015 03:14, Steinar H. Gunderson wrote:
On Mon, Aug 31, 2015 at 05:28:10PM +0300, Mathias Nyman wrote:
The "ERROR Transfer event TRB DMA ptr not part of curren..." errors are a bit worrying.
I was hoping these would no longer occur after the last off by one fix:

commit 7895086afde2a05fa24a0e410d8e6b75ca7c8fdd
     xhci: fix off by one error in TRB DMA address boundary check

I'm still seeing both of these errors on 4.3-rc1:

Sep 20 00:45:40 klump kernel: [89167.209335] xhci_hcd 0000:00:14.0: ERROR Unknown event condition 20, HC probably busted
Sep 20 00:45:40 klump kernel: [89167.209421] xhci_hcd 0000:00:14.0: ERROR Unknown event condition 20, HC probably busted
Sep 20 00:45:40 klump kernel: [89167.209588] xhci_hcd 0000:00:14.0: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 6 comp_code 13
Sep 20 00:45:40 klump kernel: [89167.209600] xhci_hcd 0000:00:14.0: Looking for event-dma 00000000fff87030 trb-start 00000000fff87000 trb-end 00000000fff87000 seg-start 00000000fff87000 seg-end 00000000fff87ff0
Sep 20 00:45:40 klump kernel: [89167.209717] xhci_hcd 0000:00:14.0: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 6 comp_code 13
Sep 20 00:45:40 klump kernel: [89167.209722] xhci_hcd 0000:00:14.0: Looking for event-dma 00000000fff87040 trb-start 00000000fff87000 trb-end 00000000fff87000 seg-start 00000000fff87000 seg-end 00000000fff87ff0
Sep 20 00:45:40 klump kernel: [89167.209833] xhci_hcd 0000:00:14.0: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 6 comp_code 13
Sep 20 00:45:40 klump kernel: [89167.209836] xhci_hcd 0000:00:14.0: Looking for event-dma 00000000fff87050 trb-start 00000000fff87000 trb-end 00000000fff87000 seg-start 00000000fff87000 seg-end 00000000fff87ff0
Sep 20 00:45:40 klump kernel: [89167.209957] xhci_hcd 0000:00:14.0: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 6 comp_code 13
Sep 20 00:45:40 klump kernel: [89167.209960] xhci_hcd 0000:00:14.0: Looking for event-dma 00000000fff87060 trb-start 00000000fff87000 trb-end 00000000fff87000 seg-start 00000000fff87000 seg-end 00000000fff87ff0


Now this suddenly makes more sense to me.

Initial problem is very much related to U1 and U2 power saving states.
Either the device can't handle these states or then we set the max exit latency values incorrectly.

Link goes to U1 or U2, and as this is a Isoc transfer host knows when the next transfer should start.
Hosts sends a PING TP to device at least "max exit latency" before this transfer to wake it up to U0.
hosts expects a reply to this PING TP.

It doesn't get a reply, so the host informs the driver of the missing reply (the event condition 20) and proceeds to the next transfer.

The driver doesn't know what to do with "event condition 20" and is unaware that controller jumped to the next transfer, this
is why we see the "ERROR Tranfer evet TRB DMA ptr not part of current TD" later

So there are two parts, the actual cause of the original error, the "event condition 20", which I still don't know
what is causing it, and the second part,  the driver fails to handle this error case properly.
The second part I can fix.

-Mathias


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