static irqreturn_t omap4_pmu_handler(int irq, void *dev, irq_handler_t handler) { if (irq == OMAP44XX_IRQ_CTI0) cti_irq_ack(&omap4_cti[0]); else if (irq == OMAP44XX_IRQ_CTI1) cti_irq_ack(&omap4_cti[1]); return handler(irq, dev); }
irqreturn_t socfpga_pmu_handler(int irq, void *dev, irq_handler_t handler) { unsigned int handled = 0; int i; for (i = 0; i < SOCFPGA_NUM_CTI; i++) if (irq == socfpga_cti_data[i].irq) { cti_irq_ack(&socfpga_cti_data[i]); handled = handler(irq, dev); } return IRQ_RETVAL(handled); }
irqreturn_t socfpga_pmu_handler(int irq, void *dev, irq_handler_t handler) { struct arm_pmu *armpmu = (struct arm_pmu *)dev; struct platform_device *pdev = armpmu->plat_device; struct socfpga_cti_device *socfpga_cti_device = platform_get_drvdata(pdev); int ncores = socfpga_cti_device->socfpga_ncores; struct cti *cti; int irq_local; unsigned int handled = 0; int i; for (i = 0; i < ncores; i++) { irq_local = socfpga_cti_device->socfpga_cti[i]->irq; cti = &socfpga_cti_device->socfpga_cti[i]->socfpga_cti_data; if (irq == irq_local) cti_irq_ack(cti); } handled = handler(irq, dev); return IRQ_RETVAL(handled); }