[POWERPC] 85xx: Add quirk to ignore bogus FPGA on CDS
authorKumar Gala <galak@kernel.crashing.org>
Thu, 19 Jul 2007 20:39:24 +0000 (15:39 -0500)
committerKumar Gala <galak@kernel.crashing.org>
Mon, 23 Jul 2007 15:27:08 +0000 (10:27 -0500)
The newer Arcadia boards for CDS have an FPGA that shows up on PCI
however isn't a real PCI device.  Add a quirk to just ignore the
FPGA.

This is based on the following patch from Andy & York:

http://ozlabs.org/pipermail/linuxppc-dev/2007-February/032042.html

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
arch/powerpc/platforms/85xx/mpc85xx_cds.c

index 9b559ebc66f845609e6baa295319b03cf8526c93..71200bdce05a8ace7adb3febd786b399dd15760d 100644 (file)
@@ -108,6 +108,16 @@ static void __init mpc85xx_cds_pci_irq_fixup(struct pci_dev *dev)
        }
 }
 
+static void __devinit skip_fake_bridge(struct pci_dev *dev)
+{
+       /* Make it an error to skip the fake bridge
+        * in pci_setup_device() in probe.c */
+       dev->hdr_type = 0x7f;
+}
+DECLARE_PCI_FIXUP_EARLY(0x1957, 0x3fff, skip_fake_bridge);
+DECLARE_PCI_FIXUP_EARLY(0x3fff, 0x1957, skip_fake_bridge);
+DECLARE_PCI_FIXUP_EARLY(0xff3f, 0x5719, skip_fake_bridge);
+
 #ifdef CONFIG_PPC_I8259
 #warning The i8259 PIC support is currently broken
 static void mpc85xx_8259_cascade(unsigned int irq, struct irq_desc *desc)