|
@@ -1223,3 +1223,20 @@ static void fixup_u4_pcie(struct pci_dev* dev)
|
|
pci_write_config_dword(dev, PCI_PREF_MEMORY_BASE, 0);
|
|
pci_write_config_dword(dev, PCI_PREF_MEMORY_BASE, 0);
|
|
}
|
|
}
|
|
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_APPLE, PCI_DEVICE_ID_APPLE_U4_PCIE, fixup_u4_pcie);
|
|
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_APPLE, PCI_DEVICE_ID_APPLE_U4_PCIE, fixup_u4_pcie);
|
|
|
|
+
|
|
|
|
+#ifdef CONFIG_PPC64
|
|
|
|
+int pmac_pci_probe_mode(struct pci_bus *bus)
|
|
|
|
+{
|
|
|
|
+ struct device_node *node = pci_bus_to_OF_node(bus);
|
|
|
|
+
|
|
|
|
+ /* We need to use normal PCI probing for the AGP bus,
|
|
|
|
+ * since the device for the AGP bridge isn't in the tree.
|
|
|
|
+ * Same for the PCIe host on U4 and the HT host bridge.
|
|
|
|
+ */
|
|
|
|
+ if (bus->self == NULL && (of_device_is_compatible(node, "u3-agp") ||
|
|
|
|
+ of_device_is_compatible(node, "u4-pcie") ||
|
|
|
|
+ of_device_is_compatible(node, "u3-ht")))
|
|
|
|
+ return PCI_PROBE_NORMAL;
|
|
|
|
+ return PCI_PROBE_DEVTREE;
|
|
|
|
+}
|
|
|
|
+#endif /* CONFIG_PPC64 */
|