webcamd, usb and two webcams - only one works

Thomas Steen Rasmussen thomas at gibfest.dk
Thu Nov 26 15:27:03 UTC 2020


On 11/26/20 4:08 PM, Hans Petter Selasky wrote:
> On 11/26/20 3:38 PM, Thomas Steen Rasmussen wrote:
>> I tried swapping the webcams around, the error is always with the 
>> second webcam connected (so video2), regardless of which webcam it is.
> 
> Hi,
> 
> Might be a bug in the XHCI controller driver or XHCI HW, that the 
> isochronous transactions don't get scheduling time.
> 
> Do you have the possibility to test on another computer running FreeBSD?

I do actually, let me get that setup.

> 
> There is a debug knob for the XHCI controller,
> 
> sysctl hw.usb.xhci.debug
> 
> Try flipping it to 17 for a second while in the "timeout" state, and 
> then flip it back to 0. Prints end up in dmesg and /var/log/messages . 
> It might sched some more details into the exact XHCI error code.

I included some of the dmesg output from the xhci debug here:

======================
xhci_setup_generic_chain_sub: NTRB=1
xhci_setup_generic_chain_sub: LINK=0x11aff1d80
xhci_dump_trb: trb = 0xfffffe00339f2010
xhci_dump_trb: qwTrb0 = 0x000000011aff1d80
xhci_dump_trb: dwTrb2 = 0x00000000
xhci_dump_trb: dwTrb3 = 0x00001831
xhci_dump_trb: trb = 0xfffffe00339f1d80
xhci_dump_trb: qwTrb0 = 0x000000011ae5ac00
xhci_dump_trb: dwTrb2 = 0x00040400
xhci_dump_trb: dwTrb3 = 0x80021415
xhci_dump_trb: trb = 0xfffffe00339f1d90
xhci_dump_trb: qwTrb0 = 0x000000011ae5b000
xhci_dump_trb: dwTrb2 = 0x00020800
xhci_dump_trb: dwTrb3 = 0x80021415
xhci_setup_generic_chain_sub: NTRB=2
xhci_setup_generic_chain_sub: LINK=0x11aff1c00
xhci_dump_trb: trb = 0xfffffe00339f1da0
xhci_dump_trb: qwTrb0 = 0x000000011aff1c00
xhci_dump_trb: dwTrb2 = 0x00000000
xhci_dump_trb: dwTrb3 = 0x00001831
xhci_dump_trb: trb = 0xfffffe00339f1c00
xhci_dump_trb: qwTrb0 = 0x000000011ae5b800
xhci_dump_trb: dwTrb2 = 0x00020800
xhci_dump_trb: dwTrb3 = 0x80021415
xhci_dump_trb: trb = 0xfffffe00339f1c10
xhci_dump_trb: qwTrb0 = 0x000000011ae5c000
xhci_dump_trb: dwTrb2 = 0x00020400
xhci_dump_trb: dwTrb3 = 0x80021415
xhci_setup_generic_chain_sub: NTRB=2
xhci_setup_generic_chain_sub: LINK=0x11aff1a80
xhci_dump_trb: trb = 0xfffffe00339f1c20
xhci_dump_trb: qwTrb0 = 0x000000011aff1a80
xhci_dump_trb: dwTrb2 = 0x00000000
xhci_dump_trb: dwTrb3 = 0x00001831
xhci_dump_trb: trb = 0xfffffe00339f1a80
xhci_dump_trb: qwTrb0 = 0x000000011ae5c400
xhci_dump_trb: dwTrb2 = 0x00020c00
xhci_dump_trb: dwTrb3 = 0x80021415
xhci_setup_generic_chain_sub: NTRB=1
xhci_setup_generic_chain_sub: LINK=0x11aff1900
xhci_dump_trb: trb = 0xfffffe00339f1a90
xhci_dump_trb: qwTrb0 = 0x000000011aff1900
xhci_dump_trb: dwTrb2 = 0x00000000
xhci_dump_trb: dwTrb3 = 0x00001831
xhci_dump_trb: trb = 0xfffffe00339f1900
xhci_dump_trb: qwTrb0 = 0x000000011ae5d000
xhci_dump_trb: dwTrb2 = 0x00020c00
xhci_dump_trb: dwTrb3 = 0x80021415
xhci_setup_generic_chain_sub: NTRB=1
xhci_setup_generic_chain_sub: LINK=0x11aff1780
xhci_dump_trb: trb = 0xfffffe00339f1910
xhci_dump_trb: qwTrb0 = 0x000000011aff1780
xhci_dump_trb: dwTrb2 = 0x00000000
xhci_dump_trb: dwTrb3 = 0x00001831
xhci_dump_trb: trb = 0xfffffe00339f1780
xhci_dump_trb: qwTrb0 = 0x000000011ae5dc00
xhci_dump_trb: dwTrb2 = 0x00040400
xhci_dump_trb: dwTrb3 = 0x80021415
xhci_dump_trb: trb = 0xfffffe00339f1790
xhci_dump_trb: qwTrb0 = 0x000000011ae5e000
xhci_dump_trb: dwTrb2 = 0x00020800
xhci_dump_trb: dwTrb3 = 0x80021415
xhci_setup_generic_chain_sub: NTRB=2
xhci_setup_generic_chain_sub: LINK=0x11aff1600
xhci_dump_trb: trb = 0xfffffe00339f17a0
xhci_dump_trb: qwTrb0 = 0x000000011aff1600
xhci_dump_trb: dwTrb2 = 0x00000000
xhci_dump_trb: dwTrb3 = 0x00001831
xhci_dump_trb: trb = 0xfffffe00339f1600
xhci_dump_trb: qwTrb0 = 0x000000011ae5e800
xhci_dump_trb: dwTrb2 = 0x00020800
xhci_dump_trb: dwTrb3 = 0x80021415
xhci_dump_trb: trb = 0xfffffe00339f1610
xhci_dump_trb: qwTrb0 = 0x000000011ae5f000
xhci_dump_trb: dwTrb2 = 0x00020400
xhci_dump_trb: dwTrb3 = 0x80021415
xhci_setup_generic_chain_sub: NTRB=2
xhci_setup_generic_chain_sub: LINK=0x11aff1480
xhci_dump_trb: trb = 0xfffffe00339f1620
xhci_dump_trb: qwTrb0 = 0x000000011aff1480
xhci_dump_trb: dwTrb2 = 0x00000000
xhci_dump_trb: dwTrb3 = 0x00001831
xhci_dump_trb: trb = 0xfffffe00339f1480
xhci_dump_trb: qwTrb0 = 0x000000011ae5f400
xhci_dump_trb: dwTrb2 = 0x00020c00
xhci_dump_trb: dwTrb3 = 0x80021415
xhci_setup_generic_chain_sub: NTRB=1
xhci_setup_generic_chain_sub: LINK=0x11aff1300
xhci_dump_trb: trb = 0xfffffe00339f1490
xhci_dump_trb: qwTrb0 = 0x000000011aff1300
xhci_dump_trb: dwTrb2 = 0x00000000
xhci_dump_trb: dwTrb3 = 0x00001831
xhci_setup_generic_chain: first=0xfffff800102c6400 last=0xfffffe00339f1480
xhci_transfer_insert:
xhci_dump_trb: trb = 0xfffffe00339f1490
xhci_dump_trb: qwTrb0 = 0x0000000096c80820
xhci_dump_trb: dwTrb2 = 0x00000000
xhci_dump_trb: dwTrb3 = 0x00001821
xhci_dump_trb: trb = 0xfffff80096c80810
xhci_dump_trb: qwTrb0 = 0x00000000102c6400
xhci_dump_trb: dwTrb2 = 0x00000000
xhci_dump_trb: dwTrb3 = 0x00000000
xhci_transfer_insert: qh_pos = 1
xhci_interrupt: real interrupt (status=0x00000008)
xhci_interrupt_poll: event[20] = 37 (0x0000000000000000 0x0c000000 
0x00009400)
xhci_interrupt_poll: Unhandled event = 37
xhci_roothub_exec: type=0xa3 request=0x00 wLen=0x0004 wValue=0x0000 
wIndex=0x0001
xhci_roothub_exec: UR_GET_STATUS i=1
xhci_roothub_exec: port status=0x000002a0
xhci_roothub_exec: type=0xa3 request=0x00 wLen=0x0004 wValue=0x0000 
wIndex=0x0002
xhci_roothub_exec: UR_GET_STATUS i=2
xhci_roothub_exec: port status=0x000002a0
xhci_roothub_exec: type=0xa3 request=0x00 wLen=0x0004 wValue=0x0000 
wIndex=0x0003
xhci_roothub_exec: UR_GET_STATUS i=3
xhci_roothub_exec: port status=0x00000e03
xhci_roothub_exec: type=0xa3 request=0x00 wLen=0x0004 wValue=0x0000 
wIndex=0x0004
xhci_roothub_exec: UR_GET_STATUS i=4
xhci_roothub_exec: port status=0x00000e03
xhci_timeout: xfer=0xfffffe00337af148
xhci_device_done: xfer=0xfffffe00337af148, endpoint=0xfffff8011a9e6968, 
error=20
xhci_device_done: xfer=0xfffffe0030694148, endpoint=0xfffff8011a9e6968, 
error=20
xhci_dump_endpoint: pep = 0xfffffe00337ae140
xhci_set_hw_power:
xhci_dump_endpoint: dwEpCtx0=0x00000000
xhci_roothub_exec: type=0xa3 request=0x00 wLen=0x0004 wValue=0x0000 
wIndex=0x0001
xhci_dump_endpoint: dwEpCtx1=0x04000228
xhci_dump_endpoint: qwEpCtx2=0x0000000096c80801
xhci_dump_endpoint: dwEpCtx4=0x0c000c00
xhci_dump_endpoint: dwEpCtx5=0x00000000
xhci_dump_endpoint: dwEpCtx6=0x00000000
xhci_dump_endpoint: dwEpCtx7=0x00000000
xhci_cmd_stop_ep:
xhci_roothub_exec: UR_GET_STATUS i=1
xhci_roothub_exec: port status=0x000002a0
xhci_roothub_exec: type=0xa3 request=0x00 wLen=0x0004 wValue=0x0000 
wIndex=0x0002
xhci_roothub_exec: UR_GET_STATUS i=2
xhci_roothub_exec: port status=0x000002a0
xhci_roothub_exec: type=0xa3 request=0x00 wLen=0x0004 wValue=0x0000 
wIndex=0x0003
xhci_roothub_exec: UR_GET_STATUS i=3
xhci_roothub_exec: port status=0x00000e03
xhci_roothub_exec: type=0xa3 request=0x00 wLen=0x0004 wValue=0x0000 
wIndex=0x0004
xhci_roothub_exec: UR_GET_STATUS i=4
xhci_roothub_exec: port status=0x00000e03
xhci_do_command: command[13] = 15 (0x0000000000000000, 0x00000000, 
0x02093c00)
xhci_interrupt: real interrupt (status=0x00000008)
xhci_interrupt_poll: event[21] = 33 (0x00000001002f8e50 0x05000000 
0x02008400)
xhci_check_command: Received command event
xhci_configure_reset_endpoint: Could not stop endpoint 9
xhci_cmd_set_tr_dequeue_ptr:
xhci_do_command: command[14] = 16 (0x0000000096c80801, 0x00000000, 
0x02094000)
xhci_interrupt: real interrupt (status=0x00000008)
xhci_interrupt_poll: event[22] = 33 (0x00000001002f8e60 0x05000000 
0x02008400)
xhci_check_command: Received command event
xhci_configure_reset_endpoint: Could not set dequeue ptr for endpoint 9
xhci_cmd_evaluate_ctx:
xhci_do_command: command[0] = 13 (0x00000001265ae000, 0x00000000, 
0x02003400)
xhci_interrupt: real interrupt (status=0x00000008)
xhci_interrupt_poll: event[23] = 33 (0x00000001002f8d80 0x01000000 
0x02008400)
xhci_check_command: Received command event
xhci_device_generic_enter:
xhci_setup_generic_chain: MFINDEX=0x0000260f
xhci_setup_generic_chain: start next=9767
xhci_dump_trb: trb = 0xfffff8011ad0e800
xhci_dump_trb: qwTrb0 = 0x0000000122ad1000
xhci_dump_trb: dwTrb2 = 0x00020c00
xhci_dump_trb: dwTrb3 = 0x4c421415
xhci_setup_generic_chain_sub: NTRB=1
xhci_setup_generic_chain_sub: LINK=0x122bf8d80
xhci_dump_trb: trb = 0xfffff8011ad0e810
xhci_dump_trb: qwTrb0 = 0x0000000122bf8d80
xhci_dump_trb: dwTrb2 = 0x00000000
xhci_dump_trb: dwTrb3 = 0x00001831
xhci_dump_trb: trb = 0xfffffe0033bf8d80
xhci_dump_trb: qwTrb0 = 0x0000000122ad1c00
xhci_dump_trb: dwTrb2 = 0x00040400
xhci_dump_trb: dwTrb3 = 0x80021415
xhci_dump_trb: trb = 0xfffffe0033bf8d90
xhci_dump_trb: qwTrb0 = 0x0000000122ad2000
xhci_dump_trb: dwTrb2 = 0x00020800
xhci_dump_trb: dwTrb3 = 0x80021415
xhci_setup_generic_chain_sub: NTRB=2
xhci_setup_generic_chain_sub: LINK=0x122bf8c00
xhci_dump_trb: trb = 0xfffffe0033bf8da0
xhci_dump_trb: qwTrb0 = 0x0000000122bf8c00
xhci_dump_trb: dwTrb2 = 0x00000000
xhci_dump_trb: dwTrb3 = 0x00001831
xhci_dump_trb: trb = 0xfffffe0033bf8c00
xhci_dump_trb: qwTrb0 = 0x0000000122ad2800
xhci_dump_trb: dwTrb2 = 0x00020800
xhci_dump_trb: dwTrb3 = 0x80021415
xhci_dump_trb: trb = 0xfffffe0033bf8c10
xhci_dump_trb: qwTrb0 = 0x0000000122ad3000
xhci_dump_trb: dwTrb2 = 0x00020400
xhci_dump_trb: dwTrb3 = 0x80021415
xhci_setup_generic_chain_sub: NTRB=2
xhci_setup_generic_chain_sub: LINK=0x122bf8a80
xhci_dump_trb: trb = 0xfffffe0033bf8c20
xhci_dump_trb: qwTrb0 = 0x0000000122bf8a80
xhci_dump_trb: dwTrb2 = 0x00000000
xhci_dump_trb: dwTrb3 = 0x00001831
xhci_dump_trb: trb = 0xfffffe0033bf8a80
xhci_dump_trb: qwTrb0 = 0x0000000122ad3400
xhci_dump_trb: dwTrb2 = 0x00020c00
xhci_dump_trb: dwTrb3 = 0x80021415
xhci_setup_generic_chain_sub: NTRB=1
xhci_setup_generic_chain_sub: LINK=0x122bf8900
xhci_dump_trb: trb = 0xfffffe0033bf8a90
xhci_dump_trb: qwTrb0 = 0x0000000122bf8900
xhci_dump_trb: dwTrb2 = 0x00000000
xhci_dump_trb: dwTrb3 = 0x00001831
xhci_dump_trb: trb = 0xfffffe0033bf8900
xhci_dump_trb: qwTrb0 = 0x0000000122ad4000
xhci_dump_trb: dwTrb2 = 0x00020c00
xhci_dump_trb: dwTrb3 = 0x80021415
xhci_setup_generic_chain_sub: NTRB=1
xhci_setup_generic_chain_sub: LINK=0x122bf8780
xhci_dump_trb: trb = 0xfffffe0033bf8910
xhci_dump_trb: qwTrb0 = 0x0000000122bf8780
xhci_dump_trb: dwTrb2 = 0x00000000
xhci_dump_trb: dwTrb3 = 0x00001831
xhci_dump_trb: trb = 0xfffffe0033bf8780
xhci_dump_trb: qwTrb0 = 0x0000000122ad4c00
xhci_dump_trb: dwTrb2 = 0x00040400
xhci_dump_trb: dwTrb3 = 0x80021415
xhci_dump_trb: trb = 0xfffffe0033bf8790
xhci_dump_trb: qwTrb0 = 0x0000000122ad5000
xhci_dump_trb: dwTrb2 = 0x00020800
xhci_dump_trb: dwTrb3 = 0x80021415
xhci_setup_generic_chain_sub: NTRB=2
xhci_setup_generic_chain_sub: LINK=0x122bf8600
xhci_dump_trb: trb = 0xfffffe0033bf87a0
xhci_dump_trb: qwTrb0 = 0x0000000122bf8600
xhci_dump_trb: dwTrb2 = 0x00000000
xhci_dump_trb: dwTrb3 = 0x00001831
xhci_dump_trb: trb = 0xfffffe0033bf8600
xhci_dump_trb: qwTrb0 = 0x0000000122ad5800
xhci_dump_trb: dwTrb2 = 0x00020800
xhci_dump_trb: dwTrb3 = 0x80021415
xhci_dump_trb: trb = 0xfffffe0033bf8610
xhci_dump_trb: qwTrb0 = 0x0000000122ad6000
xhci_dump_trb: dwTrb2 = 0x00020400
xhci_dump_trb: dwTrb3 = 0x80021415
xhci_setup_generic_chain_sub: NTRB=2
xhci_setup_generic_chain_sub: LINK=0x122bf8480
xhci_dump_trb: trb = 0xfffffe0033bf8620
xhci_dump_trb: qwTrb0 = 0x0000000122bf8480
xhci_dump_trb: dwTrb2 = 0x00000000
xhci_dump_trb: dwTrb3 = 0x00001831
xhci_dump_trb: trb = 0xfffffe0033bf8480
xhci_dump_trb: qwTrb0 = 0x0000000122ad6400
xhci_dump_trb: dwTrb2 = 0x00020c00
xhci_dump_trb: dwTrb3 = 0x80021415
xhci_setup_generic_chain_sub: NTRB=1
xhci_setup_generic_chain_sub: LINK=0x122bf8300
xhci_dump_trb: trb = 0xfffffe0033bf8490
xhci_dump_trb: qwTrb0 = 0x0000000122bf8300
xhci_dump_trb: dwTrb2 = 0x00000000
xhci_dump_trb: dwTrb3 = 0x00001831
xhci_dump_trb: trb = 0xfffffe0033bf8300
xhci_dump_trb: qwTrb0 = 0x0000000122ad7000
xhci_dump_trb: dwTrb2 = 0x00020c00
xhci_dump_trb: dwTrb3 = 0x80021415
xhci_setup_generic_chain_sub: NTRB=1
xhci_setup_generic_chain_sub: LINK=0x122bf8180
xhci_dump_trb: trb = 0xfffffe0033bf8310
xhci_dump_trb: qwTrb0 = 0x0000000122bf8180
xhci_dump_trb: dwTrb2 = 0x00000000
xhci_dump_trb: dwTrb3 = 0x00001831
xhci_dump_trb: trb = 0xfffffe0033bf8180
xhci_dump_trb: qwTrb0 = 0x0000000122ad7c00
xhci_dump_trb: dwTrb2 = 0x00040400
xhci_dump_trb: dwTrb3 = 0x80021415
xhci_dump_trb: trb = 0xfffffe0033bf8190
=======================

The full dmesg output is here but it is just more of the same it seems: 
https://dpaste.org/qodA



More information about the freebsd-usb mailing list