--- a/drivers/pci/pci-acpi.c
+++ b/drivers/pci/pci-acpi.c
@@ -1434,7 +1434,7 @@ void pci_acpi_setup(struct device *dev, struct acpi_device *adev)
* reason is that the bridge may have additional methods such as
* _DSW that need to be called.
*/
- if (pci_dev->bridge_d3_allowed)
+ if (pci_dev->bridge_d3cold_allowed && pci_dev->bridge_d3hot_allowed)