Bug 179342 - Freebsd 10.0-current USB 3.0 not working (xhci_do_comand: Command timeout!)
Summary: Freebsd 10.0-current USB 3.0 not working (xhci_do_comand: Command timeout!)
Status: In Progress
Alias: None
Product: Base System
Classification: Unclassified
Component: usb (show other bugs)
Version: 10.0-CURRENT
Hardware: Any Any
: --- Affects Some People
Assignee: Hans Petter Selasky
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-06-05 20:10 UTC by miguelmclara
Modified: 2018-11-06 06:35 UTC (History)
2 users (show)

See Also:


Attachments
xhci_timer.diff (1.13 KB, patch)
2013-06-07 07:06 UTC, HPS
no flags Details | Diff
xhci_timer.diff (1.19 KB, patch)
2013-07-07 00:07 UTC, miguelmclara
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description miguelmclara 2013-06-05 20:10:00 UTC
This is an Ultrabook (acer s3) with only one USB 3.0 Controller (2-ports)

I first noticed that I could not install 10-current using the memstick images, I got stuck at mount root, after upgrading form 9.1 using base and kernel tarballs I noticed that the system has no longer detecting my memsticks.


When connecting usb devices (memstick,hdd) I get:

xhci_do_comand: Command timeout!
usb_alloc_device: device init 2 failed (USB_ERR_TIMEOUT, ignored)
usbgen0.2: <Unknown> at usbus0 (disconnected)
usb_reattach_port: could not allocate new device


More info about the controller:
xhci0: <Intel Panther Point USB 3.0 controller> mem 0xc0500000-0xc050ffff at device 20.0 on pci0

And has I explained in the mailling list, I already tried:

sysctl hw.xhci.xhci_port_route=-1 (and =1) in /boot/loader.conf 
(and in sysctl.conf but I guess the first one is the proper way

rebooted, and still no luck.

Fix: 

Tried: sysctl hw.xhci.xhci_port_route=-1 -> DID NOT work!
How-To-Repeat: 1: Download a memstick image and dd to a usb, after boot you get stuck at "mountroot" prompt.

2: If you're able to install 10-0 current any other way, just connect a USB memstick to 3.0 controller, and you'll see the problem (unless if this is related to my controller specifically - Intel Panther Point USB 3.0)
Comment 1 HPS 2013-06-06 07:20:17 UTC
> Tried: sysctl hw.xhci.xhci_port_route=-1 -> DID NOT work!

Hi,

Compile a kernel with "options USB_DEBUG". Then enable 
"hw.usb.xhci.debug=16". If you don't see any interrupt messages, then I 
believe it is an IRQ routing issue which is the cause of the failure. 
Might also be that the device uses MSI interrupts which we don't support 
yet.

--HPS
Comment 2 miguelmclara 2013-06-07 00:25:05 UTC
Well the odd part is that I had no problems with 9.1, both ports
worked fine with any memstick or disk drive.

Dmesg output after attaching device (with sysctl hw.usb.xhci.debug=16)

Jun  6 17:16:35 r2d2 kernel: xhci_set_hw_power:
Jun  6 17:16:35 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0001
Jun  6 17:16:35 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=1
Jun  6 17:16:35 r2d2 kernel: xhci_roothub_exec: port status=0x000002a0
Jun  6 17:16:35 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0002
Jun  6 17:16:35 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=2
Jun  6 17:16:35 r2d2 kernel: xhci_roothub_exec: port status=0x000002a0
Jun  6 17:16:35 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0003
Jun  6 17:16:35 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=3
Jun  6 17:16:35 r2d2 kernel: xhci_roothub_exec: port status=0x000002a0
Jun  6 17:16:35 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0004
Jun  6 17:16:35 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=4
Jun  6 17:16:35 r2d2 kernel: xhci_roothub_exec: port status=0x000006e1
Jun  6 17:16:35 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0005
Jun  6 17:16:35 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=5
Jun  6 17:16:35 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:16:35 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0006
Jun  6 17:16:35 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=6
Jun  6 17:16:35 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:16:35 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0007
Jun  6 17:16:35 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=7
Jun  6 17:16:35 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:16:35 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0008
Jun  6 17:16:35 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=8
Jun  6 17:16:35 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:16:39 r2d2 kernel: xhci_set_hw_power:
Jun  6 17:16:39 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0001
Jun  6 17:16:39 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=1
Jun  6 17:16:39 r2d2 kernel: xhci_roothub_exec: port status=0x000002a0
Jun  6 17:16:39 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0002
Jun  6 17:16:39 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=2
Jun  6 17:16:39 r2d2 kernel: xhci_roothub_exec: port status=0x000002a0
Jun  6 17:16:39 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0003
Jun  6 17:16:39 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=3
Jun  6 17:16:39 r2d2 kernel: xhci_roothub_exec: port status=0x000002a0
Jun  6 17:16:39 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0004
Jun  6 17:16:39 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=4
Jun  6 17:16:39 r2d2 kernel: xhci_roothub_exec: port status=0x000006e1
Jun  6 17:16:39 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0005
Jun  6 17:16:39 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=5
Jun  6 17:16:39 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:16:39 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0006
Jun  6 17:16:39 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=6
Jun  6 17:16:39 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:16:39 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0007
Jun  6 17:16:39 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=7
Jun  6 17:16:39 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:16:39 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0008
Jun  6 17:16:39 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=8
Jun  6 17:16:39 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:16:43 r2d2 kernel: xhci_set_hw_power:
Jun  6 17:16:43 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0001
Jun  6 17:16:43 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=1
Jun  6 17:16:43 r2d2 kernel: xhci_roothub_exec: port status=0x000002a0
Jun  6 17:16:43 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0002
Jun  6 17:16:43 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=2
Jun  6 17:16:43 r2d2 kernel: xhci_roothub_exec: port status=0x000206e1
Jun  6 17:16:43 r2d2 kernel: xhci_roothub_exec: type=0x23 request=0x01
wLen=0x0000 wValue=0x0010 wIndex=0x0002
Jun  6 17:16:43 r2d2 kernel: xhci_roothub_exec: UR_CLEAR_PORT_FEATURE
Jun  6 17:16:43 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0002
Jun  6 17:16:43 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=2
Jun  6 17:16:43 r2d2 kernel: xhci_roothub_exec: port status=0x000006e1
Jun  6 17:16:43 r2d2 kernel: xhci_roothub_exec: type=0x23 request=0x01
wLen=0x0000 wValue=0x0014 wIndex=0x0002
Jun  6 17:16:43 r2d2 kernel: xhci_roothub_exec: UR_CLEAR_PORT_FEATURE
Jun  6 17:16:43 r2d2 kernel: xhci_roothub_exec: type=0x23 request=0x03
wLen=0x0000 wValue=0x0004 wIndex=0x0002
Jun  6 17:16:43 r2d2 kernel: xhci_roothub_exec: reset port 2
Jun  6 17:16:43 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0002
Jun  6 17:16:43 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=2
Jun  6 17:16:43 r2d2 kernel: xhci_roothub_exec: port status=0x00000f91
Jun  6 17:16:43 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0002
Jun  6 17:16:43 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=2
Jun  6 17:16:43 r2d2 kernel: xhci_roothub_exec: port status=0x00200e03
Jun  6 17:16:43 r2d2 kernel: xhci_roothub_exec: type=0x23 request=0x01
wLen=0x0000 wValue=0x0014 wIndex=0x0002
Jun  6 17:16:43 r2d2 kernel: xhci_roothub_exec: UR_CLEAR_PORT_FEATURE
Jun  6 17:16:44 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0002
Jun  6 17:16:44 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=2
Jun  6 17:16:44 r2d2 kernel: xhci_roothub_exec: port status=0x00000e03
Jun  6 17:16:44 r2d2 kernel: xhci_ep_init:
endpoint=0xfffffe000e4ea0d8, addr=0, endpt=0, mode=0
Jun  6 17:16:44 r2d2 kernel: xhci_ep_clear_stall:
Jun  6 17:16:44 r2d2 kernel: xhci_cmd_enable_slot:
Jun  6 17:16:44 r2d2 kernel: xhci_do_command: command[5] = 9
(0x0000000000000000, 0x00000000, 0x00002400)
Jun  6 17:16:44 r2d2 kernel: xhci_do_command: Command timeout!
Jun  6 17:16:44 r2d2 kernel: usb_alloc_device: device init 2 failed
(USB_ERR_TIMEOUT, ignored)
Jun  6 17:16:44 r2d2 kernel: xhci_device_state_change:
Jun  6 17:16:44 r2d2 kernel: ugen0.2: <Unknown> at usbus0 (disconnected)
Jun  6 17:16:44 r2d2 kernel: uhub_reattach_port: could not allocate new device
Jun  6 17:16:44 r2d2 kernel: xhci_roothub_exec: type=0x23 request=0x01
wLen=0x0000 wValue=0x0001 wIndex=0x0002
Jun  6 17:16:44 r2d2 kernel: xhci_roothub_exec: UR_CLEAR_PORT_FEATURE
Jun  6 17:16:44 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0003
Jun  6 17:16:44 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=3
Jun  6 17:16:44 r2d2 kernel: xhci_roothub_exec: port status=0x000002a0
Jun  6 17:16:44 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0004
Jun  6 17:16:44 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=4
Jun  6 17:16:44 r2d2 kernel: xhci_roothub_exec: port status=0x000006e1
Jun  6 17:16:44 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0005
Jun  6 17:16:44 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=5
Jun  6 17:16:44 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:16:44 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0006
Jun  6 17:16:44 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=6
Jun  6 17:16:44 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:16:44 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0007
Jun  6 17:16:44 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=7
Jun  6 17:16:44 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:16:44 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0008
Jun  6 17:16:44 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=8
Jun  6 17:16:44 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:16:47 r2d2 kernel: xhci_set_hw_power:
Jun  6 17:16:47 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0001
Jun  6 17:16:47 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=1
Jun  6 17:16:47 r2d2 kernel: xhci_roothub_exec: port status=0x000002a0
Jun  6 17:16:47 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0002
Jun  6 17:16:47 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=2
Jun  6 17:16:47 r2d2 kernel: xhci_roothub_exec: port status=0x000006e1
Jun  6 17:16:47 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0003
Jun  6 17:16:47 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=3
Jun  6 17:16:47 r2d2 kernel: xhci_roothub_exec: port status=0x000002a0
Jun  6 17:16:47 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0004
Jun  6 17:16:47 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=4
Jun  6 17:16:47 r2d2 kernel: xhci_roothub_exec: port status=0x000006e1
Jun  6 17:16:47 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0005
Jun  6 17:16:47 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=5
Jun  6 17:16:47 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:16:47 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0006
Jun  6 17:16:47 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=6
Jun  6 17:16:47 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:16:47 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0007
Jun  6 17:16:47 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=7
Jun  6 17:16:47 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:16:47 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0008
Jun  6 17:16:47 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=8
Jun  6 17:16:47 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:16:51 r2d2 kernel: xhci_set_hw_power:
Jun  6 17:16:51 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0001
Jun  6 17:16:51 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=1
Jun  6 17:16:51 r2d2 kernel: xhci_roothub_exec: port status=0x000002a0
Jun  6 17:16:51 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0002
Jun  6 17:16:51 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=2
Jun  6 17:16:51 r2d2 kernel: xhci_roothub_exec: port status=0x000006e1
Jun  6 17:16:51 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0003
Jun  6 17:16:51 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=3
Jun  6 17:16:51 r2d2 kernel: xhci_roothub_exec: port status=0x000002a0
Jun  6 17:16:51 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0004
Jun  6 17:16:51 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=4
Jun  6 17:16:51 r2d2 kernel: xhci_roothub_exec: port status=0x000006e1
Jun  6 17:16:51 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0005
Jun  6 17:16:51 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=5
Jun  6 17:16:51 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:16:51 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0006
Jun  6 17:16:51 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=6
Jun  6 17:16:51 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:16:51 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0007
Jun  6 17:16:51 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=7
Jun  6 17:16:51 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:16:51 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0008
Jun  6 17:16:51 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=8
Jun  6 17:16:51 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:16:55 r2d2 kernel: xhci_set_hw_power:
Jun  6 17:16:55 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0001
Jun  6 17:16:55 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=1
Jun  6 17:16:55 r2d2 kernel: xhci_roothub_exec: port status=0x000002a0
Jun  6 17:16:55 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0002
Jun  6 17:16:55 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=2
Jun  6 17:16:55 r2d2 kernel: xhci_roothub_exec: port status=0x000006e1
Jun  6 17:16:55 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0003
Jun  6 17:16:55 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=3
Jun  6 17:16:55 r2d2 kernel: xhci_roothub_exec: port status=0x000002a0
Jun  6 17:16:55 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0004
Jun  6 17:16:55 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=4
Jun  6 17:16:55 r2d2 kernel: xhci_roothub_exec: port status=0x000006e1
Jun  6 17:16:55 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0005
Jun  6 17:16:55 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=5
Jun  6 17:16:55 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:16:55 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0006
Jun  6 17:16:55 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=6
Jun  6 17:16:55 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:16:55 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0007
Jun  6 17:16:55 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=7
Jun  6 17:16:55 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:16:55 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0008
Jun  6 17:16:55 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=8
Jun  6 17:16:55 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:16:59 r2d2 kernel: xhci_set_hw_power:
Jun  6 17:16:59 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0001
Jun  6 17:16:59 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=1
Jun  6 17:16:59 r2d2 kernel: xhci_roothub_exec: port status=0x000002a0
Jun  6 17:16:59 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0002
Jun  6 17:16:59 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=2
Jun  6 17:16:59 r2d2 kernel: xhci_roothub_exec: port status=0x000006e1
Jun  6 17:16:59 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0003
Jun  6 17:16:59 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=3
Jun  6 17:16:59 r2d2 kernel: xhci_roothub_exec: port status=0x000002a0
Jun  6 17:16:59 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0004
Jun  6 17:16:59 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=4
Jun  6 17:16:59 r2d2 kernel: xhci_roothub_exec: port status=0x000006e1
Jun  6 17:16:59 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0005
Jun  6 17:16:59 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=5
Jun  6 17:16:59 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:16:59 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0006
Jun  6 17:16:59 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=6
Jun  6 17:16:59 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:16:59 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0007
Jun  6 17:16:59 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=7
Jun  6 17:16:59 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:16:59 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0008
Jun  6 17:16:59 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=8
Jun  6 17:16:59 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:17:03 r2d2 kernel: xhci_set_hw_power:
Jun  6 17:17:03 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0001
Jun  6 17:17:03 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=1
Jun  6 17:17:03 r2d2 kernel: xhci_roothub_exec: port status=0x000002a0
Jun  6 17:17:03 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0002
Jun  6 17:17:03 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=2
Jun  6 17:17:03 r2d2 kernel: xhci_roothub_exec: port status=0x000006e1
Jun  6 17:17:03 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0003
Jun  6 17:17:03 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=3
Jun  6 17:17:03 r2d2 kernel: xhci_roothub_exec: port status=0x000002a0
Jun  6 17:17:03 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0004
Jun  6 17:17:03 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=4
Jun  6 17:17:03 r2d2 kernel: xhci_roothub_exec: port status=0x000006e1
Jun  6 17:17:03 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0005
Jun  6 17:17:03 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=5
Jun  6 17:17:03 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:17:03 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0006
Jun  6 17:17:03 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=6
Jun  6 17:17:03 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:17:03 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0007
Jun  6 17:17:03 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=7
Jun  6 17:17:03 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:17:03 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0008
Jun  6 17:17:03 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=8
Jun  6 17:17:03 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:17:07 r2d2 kernel: xhci_set_hw_power:
Jun  6 17:17:07 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0001
Jun  6 17:17:07 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=1
Jun  6 17:17:07 r2d2 kernel: xhci_roothub_exec: port status=0x000002a0
Jun  6 17:17:07 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0002
Jun  6 17:17:07 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=2
Jun  6 17:17:07 r2d2 kernel: xhci_roothub_exec: port status=0x000006e1
Jun  6 17:17:07 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0003
Jun  6 17:17:07 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=3
Jun  6 17:17:07 r2d2 kernel: xhci_roothub_exec: port status=0x000002a0
Jun  6 17:17:07 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0004
Jun  6 17:17:07 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=4
Jun  6 17:17:07 r2d2 kernel: xhci_roothub_exec: port status=0x000006e1
Jun  6 17:17:07 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0005
Jun  6 17:17:07 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=5
Jun  6 17:17:07 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:17:07 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0006
Jun  6 17:17:07 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=6
Jun  6 17:17:07 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:17:07 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0007
Jun  6 17:17:07 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=7
Jun  6 17:17:07 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:17:07 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0008
Jun  6 17:17:07 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=8
Jun  6 17:17:07 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:17:11 r2d2 kernel: xhci_set_hw_power:
Jun  6 17:17:11 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0001
Jun  6 17:17:11 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=1
Jun  6 17:17:11 r2d2 kernel: xhci_roothub_exec: port status=0x000002a0
Jun  6 17:17:11 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0002
Jun  6 17:17:11 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=2
Jun  6 17:17:11 r2d2 kernel: xhci_roothub_exec: port status=0x000006e1
Jun  6 17:17:11 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0003
Jun  6 17:17:11 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=3
Jun  6 17:17:11 r2d2 kernel: xhci_roothub_exec: port status=0x000002a0
Jun  6 17:17:11 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0004
Jun  6 17:17:11 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=4
Jun  6 17:17:11 r2d2 kernel: xhci_roothub_exec: port status=0x000006e1
Jun  6 17:17:11 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0005
Jun  6 17:17:11 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=5
Jun  6 17:17:11 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:17:11 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0006
Jun  6 17:17:11 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=6
Jun  6 17:17:11 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:17:11 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0007
Jun  6 17:17:11 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=7
Jun  6 17:17:11 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:17:11 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0008
Jun  6 17:17:11 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=8
Jun  6 17:17:11 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:17:15 r2d2 kernel: xhci_set_hw_power:
Jun  6 17:17:15 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0001
Jun  6 17:17:15 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=1
Jun  6 17:17:15 r2d2 kernel: xhci_roothub_exec: port status=0x000002a0
Jun  6 17:17:15 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0002
Jun  6 17:17:15 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=2
Jun  6 17:17:15 r2d2 kernel: xhci_roothub_exec: port status=0x000006e1
Jun  6 17:17:15 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0003
Jun  6 17:17:15 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=3
Jun  6 17:17:15 r2d2 kernel: xhci_roothub_exec: port status=0x000002a0
Jun  6 17:17:15 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0004
Jun  6 17:17:15 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=4
Jun  6 17:17:15 r2d2 kernel: xhci_roothub_exec: port status=0x000006e1
Jun  6 17:17:15 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0005
Jun  6 17:17:15 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=5
Jun  6 17:17:15 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:17:15 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0006
Jun  6 17:17:15 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=6
Jun  6 17:17:15 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:17:15 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0007
Jun  6 17:17:15 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=7
Jun  6 17:17:15 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:17:15 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0008
Jun  6 17:17:15 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=8
Jun  6 17:17:15 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:17:19 r2d2 kernel: xhci_set_hw_power:
Jun  6 17:17:19 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0001
Jun  6 17:17:19 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=1
Jun  6 17:17:19 r2d2 kernel: xhci_roothub_exec: port status=0x000002a0
Jun  6 17:17:19 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0002
Jun  6 17:17:19 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=2
Jun  6 17:17:19 r2d2 kernel: xhci_roothub_exec: port status=0x000006e1
Jun  6 17:17:19 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0003
Jun  6 17:17:19 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=3
Jun  6 17:17:19 r2d2 kernel: xhci_roothub_exec: port status=0x000002a0
Jun  6 17:17:19 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0004
Jun  6 17:17:19 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=4
Jun  6 17:17:19 r2d2 kernel: xhci_roothub_exec: port status=0x000006e1
Jun  6 17:17:19 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0005
Jun  6 17:17:19 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=5
Jun  6 17:17:19 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:17:19 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0006
Jun  6 17:17:19 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=6
Jun  6 17:17:19 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:17:19 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0007
Jun  6 17:17:19 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=7
Jun  6 17:17:19 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:17:19 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0008
Jun  6 17:17:19 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=8
Jun  6 17:17:19 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:17:23 r2d2 kernel: xhci_set_hw_power:
Jun  6 17:17:23 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0001
Jun  6 17:17:23 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=1
Jun  6 17:17:23 r2d2 kernel: xhci_roothub_exec: port status=0x000002a0
Jun  6 17:17:23 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0002
Jun  6 17:17:23 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=2
Jun  6 17:17:23 r2d2 kernel: xhci_roothub_exec: port status=0x000006e1
Jun  6 17:17:23 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0003
Jun  6 17:17:23 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=3
Jun  6 17:17:23 r2d2 kernel: xhci_roothub_exec: port status=0x000002a0
Jun  6 17:17:23 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0004
Jun  6 17:17:23 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=4
Jun  6 17:17:23 r2d2 kernel: xhci_roothub_exec: port status=0x000006e1
Jun  6 17:17:23 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0005
Jun  6 17:17:23 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=5
Jun  6 17:17:23 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:17:23 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0006
Jun  6 17:17:23 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=6
Jun  6 17:17:23 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:17:23 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0007
Jun  6 17:17:23 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=7
Jun  6 17:17:23 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:17:23 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0008
Jun  6 17:17:23 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=8
Jun  6 17:17:23 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:17:27 r2d2 kernel: xhci_set_hw_power:
Jun  6 17:17:27 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0001
Jun  6 17:17:27 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=1
Jun  6 17:17:27 r2d2 kernel: xhci_roothub_exec: port status=0x000002a0
Jun  6 17:17:27 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0002
Jun  6 17:17:27 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=2
Jun  6 17:17:27 r2d2 kernel: xhci_roothub_exec: port status=0x000006e1
Jun  6 17:17:27 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0003
Jun  6 17:17:27 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=3
Jun  6 17:17:27 r2d2 kernel: xhci_roothub_exec: port status=0x000002a0
Jun  6 17:17:27 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0004
Jun  6 17:17:27 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=4
Jun  6 17:17:27 r2d2 kernel: xhci_roothub_exec: port status=0x000006e1
Jun  6 17:17:27 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0005
Jun  6 17:17:27 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=5
Jun  6 17:17:27 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:17:27 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0006
Jun  6 17:17:27 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=6
Jun  6 17:17:27 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:17:27 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0007
Jun  6 17:17:27 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=7
Jun  6 17:17:27 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:17:27 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0008
Jun  6 17:17:27 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=8
Jun  6 17:17:27 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:17:31 r2d2 kernel: xhci_set_hw_power:
Jun  6 17:17:31 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0001
Jun  6 17:17:31 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=1
Jun  6 17:17:31 r2d2 kernel: xhci_roothub_exec: port status=0x000002a0
Jun  6 17:17:31 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0002
Jun  6 17:17:31 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=2
Jun  6 17:17:31 r2d2 kernel: xhci_roothub_exec: port status=0x000006e1
Jun  6 17:17:31 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0003
Jun  6 17:17:31 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=3
Jun  6 17:17:31 r2d2 kernel: xhci_roothub_exec: port status=0x000002a0
Jun  6 17:17:31 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0004
Jun  6 17:17:31 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=4
Jun  6 17:17:31 r2d2 kernel: xhci_roothub_exec: port status=0x000006e1
Jun  6 17:17:31 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0005
Jun  6 17:17:31 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=5
Jun  6 17:17:31 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:17:31 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0006
Jun  6 17:17:31 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=6
Jun  6 17:17:31 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:17:31 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0007
Jun  6 17:17:31 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=7
Jun  6 17:17:31 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Jun  6 17:17:31 r2d2 kernel: xhci_roothub_exec: type=0xa3 request=0x00
wLen=0x0004 wValue=0x0000 wIndex=0x0008
Jun  6 17:17:31 r2d2 kernel: xhci_roothub_exec: UR_GET_STATUS i=8
Jun  6 17:17:31 r2d2 kernel: xhci_roothub_exec: port status=0x000802a0
Comment 3 HPS 2013-06-07 07:06:14 UTC
> Tried: sysctl hw.xhci.xhci_port_route=-1 -> DID NOT work!

Hi,

Can you patch the kernel using the attached patch? It will fake 
interrupts. Does the XHCI work now?

--HPS
Comment 4 Takanori Watanabe 2013-06-07 07:21:28 UTC
Reverting the recent change on xhci.c fixes the problem for me.

--- head/sys/dev/usb/controller/xhci.c  2013/04/23 06:26:54     249786
+++ head/sys/dev/usb/controller/xhci.c  2013/06/02 12:28:29     251254
Comment 5 HPS 2013-06-07 07:49:14 UTC
On 06/07/13 08:21, takawata@init-main.com wrote:
> Reverting the recent change on xhci.c fixes the problem for me.
>
> --- head/sys/dev/usb/controller/xhci.c  2013/04/23 06:26:54     249786
> +++ head/sys/dev/usb/controller/xhci.c  2013/06/02 12:28:29     251254
>

Hi,

If you look at the SVN log, there are only a few changes in the XHCI 
area. Could you identify exactly which change is the cause of the 
problem? I don't see that any of the changes between r1 and r2 should 
affect the XHCI device init function, where it is failing.

http://svnweb.freebsd.org/base/head/sys/dev/usb/controller/xhci.c?view=log

xhci_do_comand: Command timeout!
usb_alloc_device: device init 2 failed (USB_ERR_TIMEOUT, ignored)
usbgen0.2: <Unknown> at usbus0 (disconnected)
usb_reattach_port: could not allocate new device

--HPS
Comment 6 miguelmclara 2013-06-07 13:44:39 UTC
Hi,

This patch does fix the issue (tested with different memsticks), I can
now use usb drivers!

I do see this at boot:
ugen1.2: <vendor 0x8087> at usbus1
uhub4: <vendor 0x8087 product 0x0024, class 9/0, rev 2.00/0.00, addr
2> on usbus1
uhub4: 6 ports with 6 removable, self powered
uhub3: 8 ports with 8 removable, self powered
ugen1.3: <Generic> at usbus1
usbd_setup_device_desc: getting device descriptor at addr 1 failed,
USB_ERR_TIMEOUT
usbd_setup_device_desc: getting device descriptor at addr 1 failed,
USB_ERR_TIMEOUT
usbd_setup_device_desc: getting device descriptor at addr 1 failed,
USB_ERR_TIMEOUT
usbd_setup_device_desc: getting device descriptor at addr 1 failed,
USB_ERR_TIMEOUT
usbd_setup_device_desc: getting device descriptor at addr 1 failed,
USB_ERR_TIMEOUT
ugen0.2: <Unknown> at usbus0 (disconnected)
uhub_reattach_port: could not allocate new device

I guess its not related to the xhci problem, but another usb
device.... but It tough I should mentioned it...

Thanks
Comment 7 dfilter service freebsd_committer 2013-06-07 15:30:20 UTC
Author: hselasky
Date: Fri Jun  7 14:30:06 2013
New Revision: 251499
URL: http://svnweb.freebsd.org/changeset/base/251499

Log:
  Add support for polling the XHCI interrupt handler when
  the regular interrupt handler is not working properly or
  in case of MSI interrupts which are not yet supported.
  Remove interrupt setup code for FreeBSD versions older
  than 700031.
  
  MFC after:	1 week
  PR:		usb/179342

Modified:
  head/sys/dev/usb/controller/xhci.c
  head/sys/dev/usb/controller/xhci.h
  head/sys/dev/usb/controller/xhci_pci.c

Modified: head/sys/dev/usb/controller/xhci.c
==============================================================================
--- head/sys/dev/usb/controller/xhci.c	Fri Jun  7 14:23:11 2013	(r251498)
+++ head/sys/dev/usb/controller/xhci.c	Fri Jun  7 14:30:06 2013	(r251499)
@@ -90,6 +90,7 @@
 #ifdef USB_DEBUG
 static int xhcidebug;
 static int xhciroute;
+static int xhcipolling;
 
 static SYSCTL_NODE(_hw_usb, OID_AUTO, xhci, CTLFLAG_RW, 0, "USB XHCI");
 SYSCTL_INT(_hw_usb_xhci, OID_AUTO, debug, CTLFLAG_RW | CTLFLAG_TUN,
@@ -98,6 +99,9 @@ TUNABLE_INT("hw.usb.xhci.debug", &xhcide
 SYSCTL_INT(_hw_usb_xhci, OID_AUTO, xhci_port_route, CTLFLAG_RW | CTLFLAG_TUN,
     &xhciroute, 0, "Routing bitmap for switching EHCI ports to XHCI controller");
 TUNABLE_INT("hw.usb.xhci.xhci_port_route", &xhciroute);
+SYSCTL_INT(_hw_usb_xhci, OID_AUTO, use_polling, CTLFLAG_RW | CTLFLAG_TUN,
+    &xhcipolling, 0, "Set to enable software interrupt polling for XHCI controller");
+TUNABLE_INT("hw.usb.xhci.use_polling", &xhcipolling);
 #endif
 
 #define	XHCI_INTR_ENDPT 1
@@ -194,6 +198,16 @@ xhci_get_port_route(void)
 #endif
 }
 
+uint8_t
+xhci_use_polling(void)
+{
+#ifdef USB_DEBUG
+	return (xhcipolling != 0);
+#else
+	return (0);
+#endif
+}
+
 static void
 xhci_iterate_hw_softc(struct usb_bus *bus, usb_bus_mem_sub_cb_t *cb)
 {

Modified: head/sys/dev/usb/controller/xhci.h
==============================================================================
--- head/sys/dev/usb/controller/xhci.h	Fri Jun  7 14:23:11 2013	(r251498)
+++ head/sys/dev/usb/controller/xhci.h	Fri Jun  7 14:30:06 2013	(r251499)
@@ -438,6 +438,8 @@ struct xhci_softc {
 	/* configure message */
 	struct usb_bus_msg	sc_config_msg[2];
 
+	struct usb_callout	sc_callout;
+
 	union xhci_hub_desc	sc_hub_desc;
 
 	struct cv		sc_cmd_cv;
@@ -500,6 +502,7 @@ struct xhci_softc {
 /* prototypes */
 
 uint32_t	xhci_get_port_route(void);
+uint8_t 	xhci_use_polling(void);
 usb_error_t xhci_halt_controller(struct xhci_softc *);
 usb_error_t xhci_init(struct xhci_softc *, device_t);
 usb_error_t xhci_start_controller(struct xhci_softc *);

Modified: head/sys/dev/usb/controller/xhci_pci.c
==============================================================================
--- head/sys/dev/usb/controller/xhci_pci.c	Fri Jun  7 14:23:11 2013	(r251498)
+++ head/sys/dev/usb/controller/xhci_pci.c	Fri Jun  7 14:30:06 2013	(r251499)
@@ -132,6 +132,16 @@ xhci_pci_probe(device_t self)
 	}
 }
 
+static void
+xhci_interrupt_poll(void *_sc)
+{
+	struct xhci_softc *sc = _sc;
+	USB_BUS_UNLOCK(&sc->sc_bus);
+	xhci_interrupt(sc);
+	USB_BUS_LOCK(&sc->sc_bus);
+	usb_callout_reset(&sc->sc_callout, 1, (void *)&xhci_interrupt_poll, sc);
+}
+
 static int
 xhci_pci_attach(device_t self)
 {
@@ -159,12 +169,13 @@ xhci_pci_attach(device_t self)
 	sc->sc_io_hdl = rman_get_bushandle(sc->sc_io_res);
 	sc->sc_io_size = rman_get_size(sc->sc_io_res);
 
+	usb_callout_init_mtx(&sc->sc_callout, &sc->sc_bus.bus_mtx, 0);
+
 	rid = 0;
 	sc->sc_irq_res = bus_alloc_resource_any(self, SYS_RES_IRQ, &rid,
 	    RF_SHAREABLE | RF_ACTIVE);
 	if (sc->sc_irq_res == NULL) {
 		device_printf(self, "Could not allocate IRQ\n");
-		goto error;
 	}
 	sc->sc_bus.bdev = device_add_child(self, "usbus", -1);
 	if (sc->sc_bus.bdev == NULL) {
@@ -175,18 +186,22 @@ xhci_pci_attach(device_t self)
 
 	sprintf(sc->sc_vendor, "0x%04x", pci_get_vendor(self));
 
-#if (__FreeBSD_version >= 700031)
-	err = bus_setup_intr(self, sc->sc_irq_res, INTR_TYPE_BIO | INTR_MPSAFE,
-	    NULL, (driver_intr_t *)xhci_interrupt, sc, &sc->sc_intr_hdl);
-#else
-	err = bus_setup_intr(self, sc->sc_irq_res, INTR_TYPE_BIO | INTR_MPSAFE,
-	    (driver_intr_t *)xhci_interrupt, sc, &sc->sc_intr_hdl);
-#endif
-	if (err) {
-		device_printf(self, "Could not setup IRQ, err=%d\n", err);
-		sc->sc_intr_hdl = NULL;
-		goto error;
+	if (sc->sc_irq_res != NULL) {
+		err = bus_setup_intr(self, sc->sc_irq_res, INTR_TYPE_BIO | INTR_MPSAFE,
+		    NULL, (driver_intr_t *)xhci_interrupt, sc, &sc->sc_intr_hdl);
+		if (err != 0) {
+			device_printf(self, "Could not setup IRQ, err=%d\n", err);
+			sc->sc_intr_hdl = NULL;
+		}
 	}
+	if (sc->sc_irq_res == NULL || sc->sc_intr_hdl == NULL ||
+	    xhci_use_polling() != 0) {
+		device_printf(self, "Interrupt polling at %dHz\n", hz);
+		USB_BUS_LOCK(&sc->sc_bus);
+		xhci_interrupt_poll(sc);
+		USB_BUS_UNLOCK(&sc->sc_bus);
+	}
+
 	xhci_pci_take_controller(self);
 
 	err = xhci_halt_controller(sc);
@@ -222,12 +237,14 @@ xhci_pci_detach(device_t self)
 	/* during module unload there are lots of children leftover */
 	device_delete_children(self);
 
+	if (sc->sc_io_res) {
+		usb_callout_drain(&sc->sc_callout);
+		xhci_halt_controller(sc);
+	}
+
 	pci_disable_busmaster(self);
 
 	if (sc->sc_irq_res && sc->sc_intr_hdl) {
-
-		xhci_halt_controller(sc);
-
 		bus_teardown_intr(self, sc->sc_irq_res, sc->sc_intr_hdl);
 		sc->sc_intr_hdl = NULL;
 	}
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
Comment 8 miguelmclara 2013-06-07 16:01:19 UTC
DQpJIHVzZWQgc3ZuIGZvciBjaGVja291dCwgYnV0IHRoZSBwcmluY2lwbGUgSSB0aGUgc2FtZS4g
SSB3aWxsIHRlc3QgZG9lcyBhbmQgcmVwb3J0IGJhY2sgbXkgZmluZGluZ3MuDQoNCg0KLS0tLS0t
TWVuc2FnZW0gb3JpZ2luYWwtLS0tLS0NCkRlOkhhbnMgUGV0dGVyIFNlbGFza3kNClBhcmE6IE1p
Z3VlbCBDbGFyYQ0KQ2M6IGZyZWVic2QtZ25hdHMtc3VibWl0QGZyZWVic2Qub3JnDQpDYzogYnVn
LWZvbGxvd3VwQGZyZWVic2Qub3JnDQpDYzogSm9obiBCYWxkd2luDQpBc3N1bnRvOiBSZTogdXNi
LzE3OTM0MjogRnJlZWJzZCAxMC4wLWN1cnJlbnQgVVNCIDMuMCBub3Qgd29ya2luZyAoeGhjaV9k
b19jb21hbmQ6IENvbW1hbmQgdGltZW91dCEpDQpFbnZpYWRhOjcgSnVuIDIwMTMgMTQ6NDINCg0K
T24gMDYvMDcvMTMgMTQ6NDQsIE1pZ3VlbCBDbGFyYSB3cm90ZToNCj4gSGksDQo+DQo+IFRoaXMg
cGF0Y2ggZG9lcyBmaXggdGhlIGlzc3VlICh0ZXN0ZWQgd2l0aCBkaWZmZXJlbnQgbWVtc3RpY2tz
KSwgSSBjYW4NCj4gbm93IHVzZSB1c2IgZHJpdmVycyENCj4NCj4gSSBkbyBzZWUgdGhpcyBhdCBi
b290Og0KPiB1Z2VuMS4yOiA8dmVuZG9yIDB4ODA4Nz4gYXQgdXNidXMxDQo+IHVodWI0OiA8dmVu
ZG9yIDB4ODA4NyBwcm9kdWN0IDB4MDAyNCwgY2xhc3MgOS8wLCByZXYgMi4wMC8wLjAwLCBhZGRy
DQo+IDI+IG9uIHVzYnVzMQ0KDQpIaSwNCg0KVGhhbmsgeW91IGZvciB0ZXN0aW5nLiBJdCB0ZWxs
cyBtZWQgdGhhdCB0aGUgSVJRIHJvdXRpbmcgaXMgYnJva2VuIA0Kc29tZXdoZXJlLg0KDQpDb3Vs
ZCB5b3UgYmluYXJ5IHNlYXJjaCB0aGUga2VybmVscyBiZXR3ZWVuIHIyNDk3ODYgYW5kIHIyNTEy
NTQsIHRvIA0KZmlndXJlIG91dCB0aGUgZXhhY3QgY29tbWl0IHRoYXQgYnJva2UgeW91ciBYSENJ
IGRyaXZlciwgcmV2ZXJ0aW5nIG15IA0KcGF0Y2g/IFlvdSBzaG91bGQgbm90IG5lZWQgdG8gYnVp
bGQgdGhlIGtlcm5lbCBtb3JlIHRoYW4gMTAgdGltZXMgYmVmb3JlIA0KeW91IGZpZ3VyZSBvdXQg
d2hpY2ggaGFzIHRoZSBjb21taXQgd2hpY2ggY2F1c2VzIHRoZSBmYWlsdXJlLg0KDQptYWtlIGJ1
aWxka2VybmVsIC1qOCAtRE5PX0NMRUFODQoNCklmIHlvdSBjaGVja2VkIG91dCB0aGUgc291cmNl
cyB1c2luZyBHSVQsIHRoaXMgc2hvdWxkIGJlIHZlcnkgcXVpY2tseSBkb25lLg0KDQotLUhQUw0K
DQoNCkVudmlhZG8gYSBwYXJ0aXIgZG8gbWV1IHNtYXJ0cGhvbmUgQmxhY2tCZXJyea4gd3d3LmJs
YWNrYmVycnkuY29t
Comment 9 miguelmclara 2013-06-07 17:49:55 UTC
In message <51B1826A.3000301@bitfrost.no>, Hans Petter Selasky wrote:
>On 06/07/13 08:21, takawata@init-main.com wrote:
>> Reverting the recent change on xhci.c fixes the problem for me.
>>
>> --- head/sys/dev/usb/controller/xhci.c  2013/04/23 06:26:54     249786
>> +++ head/sys/dev/usb/controller/xhci.c  2013/06/02 12:28:29     251254
>>
>
>Hi,
>
>If you look at the SVN log, there are only a few changes in the XHCI 
>area. Could you identify exactly which change is the cause of the 
>problem? I don't see that any of the changes between r1 and r2 should 
>affect the XHCI device init function, where it is failing.
>
>http://svnweb.freebsd.org/base/head/sys/dev/usb/controller/xhci.c?view=log
>
>xhci_do_comand: Command timeout!
>usb_alloc_device: device init 2 failed (USB_ERR_TIMEOUT, ignored)
>usbgen0.2: <Unknown> at usbus0 (disconnected)
>usb_reattach_port: could not allocate new device

xhci.c 251251:251253 cause the problem for me.
Comment 10 hans.petter.selasky 2013-06-07 18:47:21 UTC
Can you try:



 

r251252



 

aswell, that`s a header file change adjusting the IRQ rate of the XHCI controller.



 

--HPS



-----Original message-----

From:Takanori Watanabe <takawata@init-main.com>

Sent:Fri 07-06-2013 18:55

Subject:Re: usb/179342: Freebsd 10.0-current USB 3.0 not working (xhci_do_comand: Command timeout!)

To:Hans Petter Selasky <hans.petter.selasky@bitfrost.no>; 

CC:bug-followup@FreeBSD.org; miguelmclara@gmail.com; 

In message <51B1826A.3000301@bitfrost.no>, Hans Petter Selasky wrote:

>On 06/07/13 08:21, takawata@init-main.com wrote:

>> Reverting the recent change on xhci.c fixes the problem for me.

>>

>> --- head/sys/dev/usb/controller/xhci.c  2013/04/23 06:26:54     249786

>> +++ head/sys/dev/usb/controller/xhci.c  2013/06/02 12:28:29     251254

>>

>

>Hi,

>

>If you look at the SVN log, there are only a few changes in the XHCI 

>area. Could you identify exactly which change is the cause of the 

>problem? I don't see that any of the changes between r1 and r2 should 

>affect the XHCI device init function, where it is failing.

>

>http://svnweb.freebsd.org/base/head/sys/dev/usb/controller/xhci.c?view=log

>

>xhci_do_comand: Command timeout!

>usb_alloc_device: device init 2 failed (USB_ERR_TIMEOUT, ignored)

>usbgen0.2: <Unknown> at usbus0 (disconnected)

>usb_reattach_port: could not allocate new device




xhci.c 251251:251253 cause the problem for me.





Comment 11 dfilter service freebsd_committer 2013-06-07 23:36:05 UTC
Author: hselasky
Date: Fri Jun  7 22:35:58 2013
New Revision: 251515
URL: http://svnweb.freebsd.org/changeset/base/251515

Log:
  Fix some recent regression issues:
  
  1) Only multi-TD isochronous transfers should use NORMAL
  type after specific type as per XHCI specification.
  
  2) BEI bit is only available in NORMAL and ISOCHRONOUS
  TRB types. Don't use this bit for other types to avoid
  hardware asserts. Reserved bits should be don't care
  though ...
  
  MFC after:	1 week
  PR:		usb/179342

Modified:
  head/sys/dev/usb/controller/xhci.c

Modified: head/sys/dev/usb/controller/xhci.c
==============================================================================
--- head/sys/dev/usb/controller/xhci.c	Fri Jun  7 22:01:06 2013	(r251514)
+++ head/sys/dev/usb/controller/xhci.c	Fri Jun  7 22:35:58 2013	(r251515)
@@ -1561,6 +1561,7 @@ xhci_setup_generic_chain_sub(struct xhci
 	struct xhci_td *td;
 	struct xhci_td *td_next;
 	struct xhci_td *td_alt_next;
+	struct xhci_td *td_first;
 	uint32_t buf_offset;
 	uint32_t average;
 	uint32_t len_old;
@@ -1569,7 +1570,6 @@ xhci_setup_generic_chain_sub(struct xhci
 	uint8_t shortpkt_old;
 	uint8_t precompute;
 	uint8_t x;
-	uint8_t first_trb = 1;
 
 	td_alt_next = NULL;
 	buf_offset = 0;
@@ -1581,7 +1581,7 @@ xhci_setup_generic_chain_sub(struct xhci
 restart:
 
 	td = temp->td;
-	td_next = temp->td_next;
+	td_next = td_first = temp->td_next;
 
 	while (1) {
 
@@ -1717,48 +1717,55 @@ restart:
 
 			td->td_trb[x].dwTrb2 = htole32(dword);
 
-			/* BEI: Interrupts are inhibited until EOT */
-			dword = XHCI_TRB_3_CHAIN_BIT | XHCI_TRB_3_CYCLE_BIT |
-			  XHCI_TRB_3_BEI_BIT |
-			  XHCI_TRB_3_TBC_SET(temp->tbc) |
-			  XHCI_TRB_3_TLBPC_SET(temp->tlbpc);
-
-			if (first_trb != 0) {
-				first_trb = 0;
-				dword |= XHCI_TRB_3_TYPE_SET(temp->trb_type);
-				/*
-				 * Remove cycle bit from the first TRB
-				 * if we are stepping them:
-				 */
-				if (temp->step_td != 0)
-					dword &= ~XHCI_TRB_3_CYCLE_BIT;
-			} else {
-				dword |= XHCI_TRB_3_TYPE_SET(XHCI_TRB_TYPE_NORMAL);
-			}
-			if (temp->trb_type == XHCI_TRB_TYPE_ISOCH) {
-				if (temp->do_isoc_sync != 0) {
+			switch (temp->trb_type) {
+			case XHCI_TRB_TYPE_ISOCH:
+				/* BEI: Interrupts are inhibited until EOT */
+				dword = XHCI_TRB_3_CHAIN_BIT | XHCI_TRB_3_CYCLE_BIT |
+				    XHCI_TRB_3_BEI_BIT |
+				    XHCI_TRB_3_TBC_SET(temp->tbc) |
+				    XHCI_TRB_3_TLBPC_SET(temp->tlbpc);
+				if (td != td_first) {
+					dword |= XHCI_TRB_3_TYPE_SET(XHCI_TRB_TYPE_NORMAL);
+				} else if (temp->do_isoc_sync != 0) {
 					temp->do_isoc_sync = 0;
-					dword |= XHCI_TRB_3_FRID_SET(temp->isoc_frame / 8);
+					/* wait until "isoc_frame" */
+					dword |= XHCI_TRB_3_TYPE_SET(XHCI_TRB_TYPE_ISOCH) |
+					    XHCI_TRB_3_FRID_SET(temp->isoc_frame / 8);
 				} else {
-					dword |= XHCI_TRB_3_ISO_SIA_BIT;
+					/* start data transfer at next interval */
+					dword |= XHCI_TRB_3_TYPE_SET(XHCI_TRB_TYPE_ISOCH) |
+					    XHCI_TRB_3_ISO_SIA_BIT;
 				}
+				if (temp->direction == UE_DIR_IN)
+					dword |= XHCI_TRB_3_DIR_IN | XHCI_TRB_3_ISP_BIT;
+				break;
+			case XHCI_TRB_TYPE_DATA_STAGE:
+				dword = XHCI_TRB_3_CHAIN_BIT | XHCI_TRB_3_CYCLE_BIT |
+				    XHCI_TRB_3_TYPE_SET(XHCI_TRB_TYPE_DATA_STAGE) |
+				    XHCI_TRB_3_TBC_SET(temp->tbc) |
+				    XHCI_TRB_3_TLBPC_SET(temp->tlbpc);
+				if (temp->direction == UE_DIR_IN)
+					dword |= XHCI_TRB_3_DIR_IN | XHCI_TRB_3_ISP_BIT;
+				break;
+			case XHCI_TRB_TYPE_STATUS_STAGE:
+				dword = XHCI_TRB_3_CHAIN_BIT | XHCI_TRB_3_CYCLE_BIT |
+				    XHCI_TRB_3_TYPE_SET(XHCI_TRB_TYPE_STATUS_STAGE) |
+				    XHCI_TRB_3_TBC_SET(temp->tbc) |
+				    XHCI_TRB_3_TLBPC_SET(temp->tlbpc);
+				if (temp->direction == UE_DIR_IN)
+					dword |= XHCI_TRB_3_DIR_IN;
+				break;
+			default:	/* XHCI_TRB_TYPE_NORMAL */
+				/* BEI: Interrupts are inhibited until EOT */
+				dword = XHCI_TRB_3_CHAIN_BIT | XHCI_TRB_3_CYCLE_BIT |
+				    XHCI_TRB_3_TYPE_SET(XHCI_TRB_TYPE_NORMAL) |
+				    XHCI_TRB_3_BEI_BIT |
+				    XHCI_TRB_3_TBC_SET(temp->tbc) |
+				    XHCI_TRB_3_TLBPC_SET(temp->tlbpc);
+				if (temp->direction == UE_DIR_IN)
+					dword |= XHCI_TRB_3_DIR_IN | XHCI_TRB_3_ISP_BIT;
+				break;
 			}
-			if (temp->direction == UE_DIR_IN) {
-				dword |= XHCI_TRB_3_DIR_IN;
-
-				/*
-				 * NOTE: Only the SETUP stage should
-				 * use the IDT bit. Else transactions
-				 * can be sent using the wrong data
-				 * toggle value.
-				 */
-				if (temp->trb_type !=
-				    XHCI_TRB_TYPE_SETUP_STAGE &&
-				    temp->trb_type !=
-				    XHCI_TRB_TYPE_STATUS_STAGE)
-					dword |= XHCI_TRB_3_ISP_BIT;
-			}
-
 			td->td_trb[x].dwTrb3 = htole32(dword);
 
 			average -= buf_res.length;
@@ -1793,10 +1800,8 @@ restart:
 
 		td->td_trb[x].dwTrb2 = htole32(dword);
 
-		/* BEI: interrupts are inhibited until EOT */
 		dword = XHCI_TRB_3_TYPE_SET(XHCI_TRB_TYPE_LINK) |
-		    XHCI_TRB_3_CYCLE_BIT | XHCI_TRB_3_IOC_BIT |
-		    XHCI_TRB_3_BEI_BIT;
+		    XHCI_TRB_3_CYCLE_BIT | XHCI_TRB_3_IOC_BIT;
 
 		td->td_trb[x].dwTrb3 = htole32(dword);
 
@@ -1824,10 +1829,13 @@ restart:
 		goto restart;
 	}
 
-	/* need to force an interrupt if we are stepping the TRBs */
-	if ((temp->direction & UE_DIR_IN) != 0 && temp->multishort == 0) {
-		/* make sure the last LINK event generates an interrupt */
-		td->td_trb[td->ntrb].dwTrb3 &= ~htole32(XHCI_TRB_3_BEI_BIT);
+	/*
+	 * Remove cycle bit from the first TRB if we are
+	 * stepping them:
+	 */
+	if (temp->step_td != 0) {
+		td_first->td_trb[0].dwTrb3 &= ~htole32(XHCI_TRB_3_CYCLE_BIT);
+		usb_pc_cpu_flush(td_first->page_cache);
 	}
 
 	/* remove chain bit because this is the last TRB in the chain */
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
Comment 12 miguelmclara 2013-07-03 01:57:04 UTC
Hi,

I was looking into the status of this and noticed that there's was
something wrong with followups...

I remember replying to this confirming that patch "xhci_timer.diff
<http://www.freebsd.org/cgi/query-pr.cgi?pr=179342&getpatch=1>" fixed my
problem and indeed I have that mail in my sent items...

Anyway, I was testing with the most recent revision, and if I do that
the problem returns...

So just to make sure in my case the first proposed patch fixed the
issue, while the other changes bring back the problem...

Just wanted to clarify!

Thanks,

Mike
Comment 13 miguelmclara 2013-07-07 00:07:18 UTC
I adapted the previous patch to work with the recent changes and it work
for me...

So I've updated to the latest revision (revision 252698) and aplied the
patch, has expect it works and I can use my USB 3.0 ports!

Comment 14 Hans Petter Selasky freebsd_committer 2017-04-23 19:20:00 UTC
Hi,

The IRQ timer polling feature should be controllable by a sysctl before hitting -current.
Comment 15 Eitan Adler freebsd_committer freebsd_triage 2018-05-28 19:49:08 UTC
batch change:

For bugs that match the following
-  Status Is In progress 
AND
- Untouched since 2018-01-01.
AND
- Affects Base System OR Documentation

DO:

Reset to open status.


Note:
I did a quick pass but if you are getting this email it might be worthwhile to double check to see if this bug ought to be closed.
Comment 16 Kubilay Kocak freebsd_committer freebsd_triage 2018-11-06 03:14:25 UTC
Assign to developer of commits referencing this issue for resolution (close)
Comment 17 Kubilay Kocak freebsd_committer freebsd_triage 2018-11-06 03:15:23 UTC
Fix Version value
Comment 18 Hans Petter Selasky freebsd_committer 2018-11-06 06:35:41 UTC
Please close if this issue is fixed.