On Tue, Sep 12, 2023 at 11:08:32PM -0500, Mario Limonciello wrote: > --- a/drivers/pci/pci.c > +++ b/drivers/pci/pci.c > @@ -2752,6 +2752,11 @@ int pci_prepare_to_sleep(struct pci_dev *dev) > if (target_state == PCI_POWER_ERROR) > return -EIO; > > + /* quirk to avoid setting D3 */ > + if (wakeup && dev->dev_flags & PCI_DEV_FLAGS_NO_WAKE_D3 && > + (target_state == PCI_D3hot || target_state == PCI_D3cold)) > + target_state = PCI_D0; > + > pci_enable_wake(dev, target_state, wakeup); > > error = pci_set_power_state(dev, target_state); Would it be possible to just add the affected system to bridge_d3_blacklist[]? Or would that defeat power management of other (non-affected) Root Ports in the same machine? There's already PCI_DEV_FLAGS_NO_D3, would it be possible to just reuse that instead of adding another codepath for D3 quirks? Thanks, Lukas