powerpc/powernv: Fixup p7ioc PCIe root complex class code
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Sun, 6 Nov 2011 18:56:00 +0000 (18:56 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Fri, 25 Nov 2011 03:32:59 +0000 (14:32 +1100)
It advertises "host bridge" instead of "PCI to PCI bridge" which confuses
the Linux probe code.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/platforms/powernv/pci.c

index 8b90d945399a7b18665210b6a7ec39607fcbcea3..baef772d41f4769ee2181f350fa280bfc30a89c6 100644 (file)
@@ -416,6 +416,13 @@ static void __devinit pnv_pci_dma_dev_setup(struct pci_dev *pdev)
                pnv_pci_dma_fallback_setup(hose, pdev);
 }
 
+/* Fixup wrong class code in p7ioc root complex */
+static void __devinit pnv_p7ioc_rc_quirk(struct pci_dev *dev)
+{
+       dev->class = PCI_CLASS_BRIDGE_PCI << 8;
+}
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_IBM, 0x3b9, pnv_p7ioc_rc_quirk);
+
 static int pnv_pci_probe_mode(struct pci_bus *bus)
 {
        struct pci_controller *hose = pci_bus_to_host(bus);