On 6.11.2021 14.23, Mark Hills wrote: > >> Also see if disabling runtime suspend for both roothubs helps: >> # echo on > /sys/bus/usb/devices/usb1/power/control >> # echo on > /sys/bus/usb/devices/usb2/power/control > > Yes, it helps. I pinpointed it on usb3. The webcam can now be plugged and > re-plugged. It also survives a suspend/resume of the machine now and I can > see the change in portsc: > > -Powered Connected Enabled Link:U3 PortSpeed:4 Change: Wake: > +Powered Not-connected Disabled Link:RxDetect PortSpeed:0 Change: Wake: > > So it seems this is a workaround -- thank you. > > Is it worth getting to the root of this problem (and can I capture any > data to help?) or is it just that some devices are buggy? To me this looks more like a like a wakeup issue on your platform than a buggy usb device. I'd look more into the what PCI D state the xHC controller is put into during runtime suspend, and make sure it actually can generate a PME wake from that state. PCI code will select D state based on values from ACPI firmware DSDT tables so those might be worth looking into. Assuming of course this is a PCI xhci controller -Mathias