summaryrefslogtreecommitdiffstats
path: root/arch/mips/pci/fixup-malta.c
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2012-06-06 12:14:08 +0200
committerRalf Baechle <ralf@linux-mips.org>2012-07-23 14:55:55 +0200
commit497e5ff03f58583ada469db8a1aa34eced9dd63e (patch)
treed84a2d7ae3365ab8bc765dc8e8dda47caa65d419 /arch/mips/pci/fixup-malta.c
parentMIPS: PCI: Add missing __devinit attributions to fixup functions. (diff)
downloadlinux-497e5ff03f58583ada469db8a1aa34eced9dd63e.tar.xz
linux-497e5ff03f58583ada469db8a1aa34eced9dd63e.zip
MIPS: Malta: Move PIIX4 PCI fixup to where it belongs.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/pci/fixup-malta.c')
-rw-r--r--arch/mips/pci/fixup-malta.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/arch/mips/pci/fixup-malta.c b/arch/mips/pci/fixup-malta.c
index 70073c98ed32..819622f93e9c 100644
--- a/arch/mips/pci/fixup-malta.c
+++ b/arch/mips/pci/fixup-malta.c
@@ -101,3 +101,17 @@ static void __devinit malta_piix_func1_fixup(struct pci_dev *pdev)
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371AB,
malta_piix_func1_fixup);
+
+/* Enable PCI 2.1 compatibility in PIIX4 */
+static void __devinit quirk_dlcsetup(struct pci_dev *dev)
+{
+ u8 odlc, ndlc;
+
+ (void) pci_read_config_byte(dev, 0x82, &odlc);
+ /* Enable passive releases and delayed transaction */
+ ndlc = odlc | 7;
+ (void) pci_write_config_byte(dev, 0x82, ndlc);
+}
+
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371AB_0,
+ quirk_dlcsetup);