@@ -498,6 +498,8 @@ int __init fsl_add_bridge(struct device_node *dev, int is_primary)
#endif /* CONFIG_FSL_SOC_BOOKE || CONFIG_PPC_86xx */
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_FREESCALE, PCI_ANY_ID, quirk_fsl_pcie_header);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_FREESCALE, PCI_ANY_ID,
+ quirk_enable_non_msi_intx_interrupt);
#if defined(CONFIG_PPC_83xx) || defined(CONFIG_PPC_MPC512x)
struct mpc83xx_pcie_priv {
@@ -91,6 +91,7 @@ struct ccsr_pci {
extern int fsl_add_bridge(struct device_node *dev, int is_primary);
extern void fsl_pcibios_fixup_bus(struct pci_bus *bus);
extern int mpc83xx_add_bridge(struct device_node *dev);
+extern void __devinit quirk_enable_non_msi_intx_interrupt(struct pci_dev *dev);
u64 fsl_pci_immrbar_base(struct pci_controller *hose);
#endif /* __POWERPC_FSL_PCI_H */
On current fsl powerpc platforms, the PCIe root port doesn't support generating MSI/MSI-X and INTx interrupt in RC mode (those interrupts are supported only in EP mode). So we use the shared error interrupt by flag PCI_DEV_FLAGS_USE_NON_MSI_INTX_IRQ for PCIe port driver to support AER, Hot-plug etc, services. Signed-off-by: Shengzhou Liu <Shengzhou.Liu@freescale.com> --- v2: separated platform-specific part to arch/powerpc/sysdev. arch/powerpc/sysdev/fsl_pci.c | 2 ++ arch/powerpc/sysdev/fsl_pci.h | 1 + 2 files changed, 3 insertions(+), 0 deletions(-)