From: SangeethaRao <sangeetha....@lsi.com> This support expects kernel module to handle the doorbell interrupt.
Signed-off-by: SangeethaRao <sangeetha....@lsi.com> --- arch/arm/mach-axxia/pci.c | 44 +++++++++++++++----------------------------- 1 file changed, 15 insertions(+), 29 deletions(-) diff --git a/arch/arm/mach-axxia/pci.c b/arch/arm/mach-axxia/pci.c index aaa966b..f85b047 100644 --- a/arch/arm/mach-axxia/pci.c +++ b/arch/arm/mach-axxia/pci.c @@ -399,46 +399,31 @@ static struct pci_ops axxia_pciex_pci_ops = { .write = arm_pciex_axxia_write_config, }; -/* RootComplex Doorbell Handler */ -void doorbell_rc_handler() -{ - pr_info("doorbell_rc_handler\n"); -} -EXPORT_SYMBOL(doorbell_rc_handler); - -/* EndPoint Doorbell Handler */ -void doorbell_ep_handler() -{ - pr_info("doorbell_ep_handler\n"); -} -EXPORT_SYMBOL(doorbell_ep_handler); - /* * pcie_doorbell_isr * * This ISR is for doorbell interrupts for * Endpoint mode which has a dedicated IRQ line + * This support expects kernel module to handle the doorbell + * interrupt */ static irqreturn_t pcie_doorbell_isr(int irq, void *arg) { struct axxia_pciex_port *port = arg; void __iomem *mbase = port->regs; - u32 intr1_status; - irqreturn_t retval = IRQ_HANDLED; + u32 intr1_status; - /* read the PEI interrupt status register */ intr1_status = readl(mbase + PCIE_INT1_STATUS); if (intr1_status & INT1_DOORBELL) { - pr_info("PCIE%d: Doorbell interrupt\n", - port->index); - doorbell_ep_handler(); - /* clear the doorbell status */ - writel(intr1_status, port->regs + PCIE_INT1_STATUS); + /* EP doorbell interrupt. This support expects kernel module + * to handle this doorbell interrupt + */ + /* Clear it */ + writel(INT1_DOORBELL, mbase + PCIE_INT1_STATUS); } - - return retval; + return IRQ_NONE; } @@ -517,11 +502,12 @@ pcie_legacy_isr(int irq, void *arg) } if (intr1_status & INT1_DOORBELL) { - pr_info("PCIE%d: Doorbell interrupt\n", - port->index); - doorbell_rc_handler(); - /* clear the doorbell status */ - writel(intr1_status, port->regs + PCIE_INT1_STATUS); + /* RC doorbell interrupt. This support expects kernel module + * to handle this doorbell interrupt + */ + /* Clear it */ + writel(INT1_DOORBELL, mbase + PCIE_INT1_STATUS); + return IRQ_NONE; } /* -- 1.8.1.4 -- _______________________________________________ linux-yocto mailing list linux-yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/linux-yocto