MIPS: Malta: Move PIIX4 PCI fixup to where it belongs.
authorRalf Baechle <ralf@linux-mips.org>
Wed, 6 Jun 2012 10:14:08 +0000 (11:14 +0100)
committerRalf Baechle <ralf@linux-mips.org>
Mon, 23 Jul 2012 12:55:55 +0000 (13:55 +0100)
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/pci/fixup-malta.c

index 70073c98ed320dc6f88f457028c8b9cd094e93ab..819622f93e9cec97a620d24941dcb80549f000ca 100644 (file)
@@ -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);