Re: Misbehaving Alder Lake-N PCH USB 3.2 xHCI Host Controller

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

 



On 27.8.2024 13.30, FPS wrote:
On 8/25/24 9:46 AM, fps wrote:
I will try and do a little more "comparative tracing" for the capture/playback/full duplex cases on 1. the intel xhci and 2. the renesas xhci which seems to work perfectly.

Hi again!

I captured a trace from the xHCI from the Renesas and the Intel
controllers and I noticed a couple of differences (this is for the
playback case only). I didn't find info on what precisely these fields
tell me.

I show here only partial traces from where it seems that regular
playback has started. I also added a couple of new lines since I haven't
yet found out how to stop thunderbird from line-wrapping :(

Intel:

           jackd-177754  [000] ....2 119172.988707:
xhci_ring_ep_doorbell: Ring doorbell for Slot 3 ep1out
  irq/125-xhci_hc-169     [003] b...3 119172.991808: xhci_handle_event:
EVENT: TRB 000000010a3f2000 status 'Success' len 0 slot 3 ep 2 type
'Transfer Event' flags e:c

  irq/125-xhci_hc-169     [003] b...3 119172.991811:
xhci_handle_transfer: ISOC: Buffer 000000011730a000 length 48 TD size 0
intr 0 type 'Isoch' flags B:i:I:c:s:i:e:C

  irq/125-xhci_hc-169     [003] b...3 119172.991813: xhci_inc_deq: ISOC
000000001e4e95c7: enq 0x000000010a3f20f0(0x000000010a3f2000) deq
0x000000010a3f2010(0x000000010a3f2000) segs 2 stream 0 bounce 200 cycle 1

  irq/125-xhci_hc-169     [003] b...3 119172.991814: xhci_inc_deq: EVENT
000000001a8ce64f: enq 0x00000001095d4000(0x00000001095d4000) deq
0x00000001095d40c0(0x00000001095d4000) segs 2 stream 0 bounce 0 cycle 0

Renesas:

           jackd-683428  [003] ....2 564371.947885:
xhci_ring_ep_doorbell: Ring doorbell for Slot 1 ep1out
  irq/127-xhci_hc-173     [002] b...3 564371.948914: xhci_handle_event:
EVENT: TRB 0000000115b2d000 status 'Success' len 0 slot 1 ep 2 type
'Transfer Event' flags e:C

  irq/127-xhci_hc-173     [002] b...3 564371.948916:
xhci_handle_transfer: ISOC: Buffer 0000000153a6a800 length 48 TD size 0
intr 0 type 'Isoch' flags B:i:I:c:s:i:e:C

  irq/127-xhci_hc-173     [002] b...3 564371.948920: xhci_inc_deq: ISOC
0000000059645549: enq 0x0000000115b2d0f0(0x0000000115b2d000) deq
0x0000000115b2d010(0x0000000115b2d000) segs 2 stream 0 bounce 200 cycle 1

  irq/127-xhci_hc-173     [002] b...3 564371.948921: xhci_inc_deq: EVENT
00000000ee8f0a5d: enq 0x000000010662e000(0x000000010662e000) deq
0x000000010662e470(0x000000010662e000) segs 1 stream 0 bounce 0 cycle 1

The first difference is that in the first line of the respective traces
the 'Transfer Event' flags have a capital 'C' for the Renesas and a
lower case 'c' for the Intel controller.

The second difference is that the fourth line has 'segs 2' for the
Intel, but 'segs 1' for the Renesas controller.

A third difference is that the fourth line ends with 'cycle 0' in the
Intel case and 'cycle 1' in the Renesas case.

I suppose these differences are mostly harmless?

Should be harmless, the cycle bit and capital 'C' changes each time the
ringbuffer wraps around.
This is how TRB consumers/producers keep track of where we are in the ring.

segs 1 vs 2 just tells that we have allocated 2 segments for *Intel host
event ringbuffer while only one for Renesas.

Thanks
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