On Sat, Oct 27, 2012 at 10:03:08PM -0700, Andrew Lutomirski wrote: > On Sat, Oct 27, 2012 at 9:59 PM, Andrew Lutomirski <luto@xxxxxxx> wrote: > > I have a Lenovo X220, and d3cold seems to break hotplug on xhci. This > > is 3.6.2-4.fc17.x86_64. > > > > The device is: > > > > 0e:00.0 USB Controller [0c03]: NEC Corporation uPD720200 USB 3.0 Host > > > > Inserting a USB3 flash stick has absolutely no effect, other than some > > lights on the stick flickering for a couple seconds. When I wrote 0 > > to /sys/devices/pci0000:00/0000:00:1c.6/0000:0e:00.0/d3cold_allowed > > with the stick inserted, the kernel immediately detected it, and it > > worked. > > Eek. It's not what I thought it was. The problem persists regardless > of the setting of d3cold_allowed. The stick is only recognized when I > insert it and then *toggle* d3cold_allowed. Setting power/control to > "on" seems to fix it. Was that power/control for the PCI host controller? If you allow D3 cold, plug in the USB device, and then run `sudo lsusb -v`, is the device enumerated? It sounds like we're not getting an interrupt for the port status change event. That could be a problem with the host not being able to send the interrupt during D3, or it could be an xHCI driver problem. We've had bugs in the past where a previous port status change bit didn't cleared, and the xHC didn't send a new interrupt for the connect change. This issue smells similar to that. Can you recompile with CONFIG_USB_DEBUG and CONFIG_USB_XHCI_HCD_DEBUGGING turned on? I'll need the dmesg just before the host controller goes into D3cold, when the hotplug event occurs, and after you trigger a D3 exit by setting power/control to on. Sarah Sharp -- 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