On Tue, Sep 15, 2020 at 04:03:45PM -0700, Matthias Kaehlcke wrote: > Hi Peter, > > On Tue, Sep 15, 2020 at 07:05:38AM +0000, Peter Chen wrote: > > Whether or not it is a wakeup_source, it could get through its or its children's > > /sys/../power/wakeup value, you have already used usb_wakeup_enabled_descendants > > to know it. > > I conceptually agree, but in practice there are some conflicting details: > > wakeup for the hubs on my system is by default disabled, yet USB wakeup works > regardless, so the flag doesn't really provide useful information. I guess we > could still use it if there is no better way, but it doesn't seem ideal. The wakeup setting for USB hubs affects only the following events: port connect, port disconnect, and port overcurrent. It does not refer to forwarding wakeup requests from downstream USB devices; that is always enabled. So maybe your wakeup flag really is accurate and you didn't realize it. > Similar for udev->bus->controller, according to sysfs it doesn't even have wakeup > support. Please let me know if there is a reliable way to check if wakeup is > enabled on the controller of a device. The host controller's sysfs wakeup setting should always be correct. If it isn't, that indicates there is a bug in the host controller driver or the corresponding platform-specific code. What driver does your system use? Alan Stern