Messages in this thread | | | Subject | Re: [PATCH] PCI / PM: Don't runtime suspend when device only supports wakeup from D0 | From | Kai Heng Feng <> | Date | Thu, 23 May 2019 03:05:08 +0800 |
| |
> On May 23, 2019, at 2:53 AM, Lukas Wunner <lukas@wunner.de> 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
| |