> On May 23, 2019, at 2:53 AM, Lukas Wunner <lukas@xxxxxxxxx> wrote: > > On Wed, May 22, 2019 at 02:39:56PM -0400, Alan Stern wrote: >> According to Kai, PME signalling doesn't work in D0 -- or at least, it >> is _documented_ not to work in D0 -- even though it is enabled and the >> device claims to support it. >> >> In any case, I don't really see any point in "runtime suspending" a >> device while leaving it in D0. We might as well just leave it alone. > > There may be devices whose drivers are able to reduce power consumption > through some device-specific means when runtime suspending, even though > the device remains in PCI_D0. The patch would cause a power regression > for those. > > In particular, pci_target_state() returns PCI_D0 if the device lacks the > PM capability. So an explicit device_can_wakeup() check before calling pci_target_state() is needed to avoid the case you described. I’ll add this in patch v2. Kai-Heng > > Thanks, > > Lukas