Beispiel #1
0
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);
}
Beispiel #2
0
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);
}
Beispiel #3
0
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);
}