--- zzzz-none-000/linux-2.6.32.61/drivers/pci/pcie/aer/aerdrv.c 2013-06-10 09:43:48.000000000 +0000 +++ virian-300e-630/linux-2.6.32.61/drivers/pci/pcie/aer/aerdrv.c 2012-10-17 09:15:08.000000000 +0000 @@ -183,6 +183,14 @@ } } +struct pci_dev *aer_dev_to_pci_dev(void *context) +{ + struct pcie_device *dev = (struct pcie_device *)context; + + return dev->port; +} +EXPORT_SYMBOL_GPL(aer_dev_to_pci_dev); + /** * aer_probe - initialize resources * @dev: pointer to the pcie_dev data structure @@ -209,6 +217,12 @@ return -ENOMEM; } +#ifdef CONFIG_IFX_PCIE + { + extern int ifx_pcie_rc_aer_irq_register(struct pci_dev *dev, void *context); + ifx_pcie_rc_aer_irq_register(dev->port, dev); + } +#else /* Request IRQ ISR */ status = request_irq(dev->irq, aer_irq, IRQF_SHARED, "aerdrv", dev); if (status) { @@ -216,7 +230,7 @@ aer_remove(dev); return status; } - +#endif rpc->isr = 1; aer_enable_rootport(rpc);