On Thu, 3 Jul 2014, Lu, Baolu wrote: > Hi, > > I am using an ASUS T100TA with dock attached. I installed Ubuntu Linux > on eMMC and customized the kernel. > > I started from "echo mem > /sys/power/state". Kernel starts its > processes to put the system into suspend mode. Before kernel executes to > xhci_bus_suspend(), xHC USB 2 root hub port (where keyboard on dock > connected) reports a port resume event. In response of this event, xHCI > roothub driver sets the corresponding bit in bus_state->resuming_ports > and intent to clear it when hcd->rh_timer expires 20ms later. > > handle_port_status(): > > xhci_dbg(xhci, "resume HS port %d\n", port_id); > bus_state->resume_done[faked_port_index] = > jiffies + > msecs_to_jiffies(20); > set_bit(faked_port_index, > &bus_state->resuming_ports); > mod_timer(&hcd->rh_timer, > bus_state->resume_done[faked_port_index]); > > When system executes to xhci_bus_suspend(), it checks > bus_state->resuming_ports. It stops here since bus_state->resuming_ports > has been set. > > xhci_bus_suspend(): > > if (hcd->self.root_hub->do_remote_wakeup) { > if (bus_state->resuming_ports) { > spin_unlock_irqrestore(&xhci->lock, flags); > xhci_dbg(xhci, "%s: suspend failed because " > "a port is resuming\n", > __func__); > return -EBUSY; > } > } > > This failure can always be reproduced when I use the keyboard on T100TA > dock. But it doesn't show up with an external USB keyboard. Does anybody > have any hints for me? It's possible that commit d6236f6d1d88 in the usb-linus branch of Greg KH's USB git tree may be relevant here. It's a long shot, though. Basically, it sounds like a bug in the dock hardware. Alan Stern -- 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