diff options
author | Yinghai Lu <yinghai@kernel.org> | 2012-02-24 02:46:55 -0500 |
---|---|---|
committer | Jesse Barnes <jbarnes@virtuousgeek.org> | 2012-02-24 17:35:14 -0500 |
commit | faa738bba5a0fcca93c5818eecbaad63ed2b6948 (patch) | |
tree | 8ae95051583f5b2078a663a70dcf162f54375ca5 /drivers/pci | |
parent | ae9de56bdda2d27d11df8d2dcde81f429ac348ee (diff) |
PCI: Use class for quirk for legacy ATA NO_D3
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Diffstat (limited to 'drivers/pci')
-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. |