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@xxxxxxxxxxxxx> --- 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(-) diff --git a/arch/powerpc/sysdev/fsl_pci.c b/arch/powerpc/sysdev/fsl_pci.c index 6073288..fb8862f 100644 --- a/arch/powerpc/sysdev/fsl_pci.c +++ b/arch/powerpc/sysdev/fsl_pci.c @@ -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 { diff --git a/arch/powerpc/sysdev/fsl_pci.h b/arch/powerpc/sysdev/fsl_pci.h index a39ed5c..a98c6d8 100644 --- a/arch/powerpc/sysdev/fsl_pci.h +++ b/arch/powerpc/sysdev/fsl_pci.h @@ -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 */ -- 1.6.4 -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html