summaryrefslogtreecommitdiffstats
path: root/drivers/pci/quirks.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2008-07-29 11:54:24 +0200
committerIngo Molnar <mingo@elte.hu>2008-07-29 11:54:24 +0200
commit3825c9e8d01e4310c40a3903a354c433c32a7b6f (patch)
tree87c94a8076bbb38bd2cf20ab9bc23d6f74f6a0a8 /drivers/pci/quirks.c
parent5d7b605245b1aa1a9cd6549b1f57d69273eb0c37 (diff)
parent6e86841d05f371b5b9b86ce76c02aaee83352298 (diff)
downloadop-kernel-dev-3825c9e8d01e4310c40a3903a354c433c32a7b6f.zip
op-kernel-dev-3825c9e8d01e4310c40a3903a354c433c32a7b6f.tar.gz
Merge commit 'v2.6.27-rc1' into x86/microcode
Conflicts: arch/x86/kernel/microcode.c Manual resolutions: arch/x86/kernel/microcode_amd.c arch/x86/kernel/microcode_intel.c Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'drivers/pci/quirks.c')
-rw-r--r--drivers/pci/quirks.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 12d4893..0fb3650 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -923,6 +923,19 @@ static void __init quirk_ide_samemode(struct pci_dev *pdev)
}
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801CA_10, quirk_ide_samemode);
+/*
+ * Some ATA devices break if put into D3
+ */
+
+static void __devinit quirk_no_ata_d3(struct pci_dev *pdev)
+{
+ /* Quirk the legacy ATA devices only. The AHCI ones are ok */
+ if ((pdev->class >> 8) == PCI_CLASS_STORAGE_IDE)
+ pdev->dev_flags |= PCI_DEV_FLAGS_NO_D3;
+}
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, PCI_ANY_ID, quirk_no_ata_d3);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_ATI, PCI_ANY_ID, quirk_no_ata_d3);
+
/* This was originally an Alpha specific thing, but it really fits here.
* The i82375 PCI/EISA bridge appears as non-classified. Fix that.
*/
OpenPOWER on IntegriCloud