aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pci
diff options
context:
space:
mode:
authorYinghai Lu <yinghai@kernel.org>2012-02-24 02:46:55 -0500
committerJesse Barnes <jbarnes@virtuousgeek.org>2012-02-24 17:35:14 -0500
commitfaa738bba5a0fcca93c5818eecbaad63ed2b6948 (patch)
tree8ae95051583f5b2078a663a70dcf162f54375ca5 /drivers/pci
parentae9de56bdda2d27d11df8d2dcde81f429ac348ee (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.c17
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
1167static void __devinit quirk_no_ata_d3(struct pci_dev *pdev) 1167static 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}
1173DECLARE_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 */
1174DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_ATI, PCI_ANY_ID, quirk_no_ata_d3); 1172DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_VENDOR_ID_SERVERWORKS, PCI_ANY_ID,
1173 PCI_CLASS_STORAGE_IDE, 8, quirk_no_ata_d3);
1174DECLARE_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 */
1176DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AL, PCI_ANY_ID, quirk_no_ata_d3); 1177DECLARE_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 */
1179DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_VIA, PCI_ANY_ID, quirk_no_ata_d3); 1181DECLARE_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.