diff options
-rw-r--r-- | drivers/pci/quirks.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index f41e00d6f2c3..a86081299633 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c | |||
@@ -1166,17 +1166,20 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801CA_10, qui | |||
1166 | 1166 | ||
1167 | static void __devinit quirk_no_ata_d3(struct pci_dev *pdev) | 1167 | static void __devinit quirk_no_ata_d3(struct pci_dev *pdev) |
1168 | { | 1168 | { |
1169 | /* Quirk the legacy ATA devices only. The AHCI ones are ok */ | 1169 | pdev->dev_flags |= PCI_DEV_FLAGS_NO_D3; |
1170 | if ((pdev->class >> 8) == PCI_CLASS_STORAGE_IDE) | ||
1171 | pdev->dev_flags |= PCI_DEV_FLAGS_NO_D3; | ||
1172 | } | 1170 | } |
1173 | DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, PCI_ANY_ID, quirk_no_ata_d3); | 1171 | /* Quirk the legacy ATA devices only. The AHCI ones are ok */ |
1174 | DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_ATI, PCI_ANY_ID, quirk_no_ata_d3); | 1172 | DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_VENDOR_ID_SERVERWORKS, PCI_ANY_ID, |
1173 | PCI_CLASS_STORAGE_IDE, 8, quirk_no_ata_d3); | ||
1174 | DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_VENDOR_ID_ATI, PCI_ANY_ID, | ||
1175 | PCI_CLASS_STORAGE_IDE, 8, quirk_no_ata_d3); | ||
1175 | /* ALi loses some register settings that we cannot then restore */ | 1176 | /* ALi loses some register settings that we cannot then restore */ |
1176 | DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AL, PCI_ANY_ID, quirk_no_ata_d3); | 1177 | DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_VENDOR_ID_AL, PCI_ANY_ID, |
1178 | PCI_CLASS_STORAGE_IDE, 8, quirk_no_ata_d3); | ||
1177 | /* VIA comes back fine but we need to keep it alive or ACPI GTM failures | 1179 | /* VIA comes back fine but we need to keep it alive or ACPI GTM failures |
1178 | occur when mode detecting */ | 1180 | occur when mode detecting */ |
1179 | DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_VIA, PCI_ANY_ID, quirk_no_ata_d3); | 1181 | DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_VENDOR_ID_VIA, PCI_ANY_ID, |
1182 | PCI_CLASS_STORAGE_IDE, 8, quirk_no_ata_d3); | ||
1180 | 1183 | ||
1181 | /* This was originally an Alpha specific thing, but it really fits here. | 1184 | /* This was originally an Alpha specific thing, but it really fits here. |
1182 | * The i82375 PCI/EISA bridge appears as non-classified. Fix that. | 1185 | * The i82375 PCI/EISA bridge appears as non-classified. Fix that. |